summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--web/html/css/aurweb.css4
-rw-r--r--web/html/index.php3
-rw-r--r--web/html/pkgflagcomment.php19
-rw-r--r--web/lib/pkgbasefuncs.inc.php32
-rw-r--r--web/template/flag_comment.php25
-rw-r--r--web/template/pkgbase_actions.php2
6 files changed, 84 insertions, 1 deletions
diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css
index 82b83d9..92ff898 100644
--- a/web/html/css/aurweb.css
+++ b/web/html/css/aurweb.css
@@ -130,6 +130,10 @@
top: 4px;
}
+.flagged a {
+ color: inherit;
+}
+
legend {
padding: 1em 0;
}
diff --git a/web/html/index.php b/web/html/index.php
index 8b5cb62..0a9fd05 100644
--- a/web/html/index.php
+++ b/web/html/index.php
@@ -73,6 +73,9 @@ if (!empty($tokens[1]) && '/' . $tokens[1] == get_pkg_route()) {
case "unflag":
$_POST['do_UnFlag'] = __('UnFlag');
break;
+ case "flag-comment":
+ include('pkgflagcomment.php');
+ return;
case "delete":
include('pkgdel.php');
return;
diff --git a/web/html/pkgflagcomment.php b/web/html/pkgflagcomment.php
new file mode 100644
index 0000000..98680ef
--- /dev/null
+++ b/web/html/pkgflagcomment.php
@@ -0,0 +1,19 @@
+<?php
+
+set_include_path(get_include_path() . PATH_SEPARATOR . '../lib');
+
+include_once("aur.inc.php");
+include_once("pkgbasefuncs.inc.php");
+
+set_lang();
+check_sid();
+
+if (!isset($base_id)) {
+ header('Location: /');
+ exit();
+}
+
+html_header(__("Flag Comment"));
+$message = pkgbase_get_flag_comment($base_id);
+include('flag_comment.php');
+html_footer(AURWEB_VERSION);
diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index 1abe426..2b1201d 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -445,6 +445,38 @@ function pkgbase_unflag($base_ids) {
}
/**
+ * Get package flag OOD comment
+ *
+ * @param int $base_id
+ *
+ * @return array Tuple of pkgbase ID, reason for OOD, and user who flagged
+ */
+function pkgbase_get_flag_comment($base_id) {
+ $base_id = intval($base_id);
+ $dbh = DB::connect();
+
+ $q = "SELECT FlaggerComment,OutOfDateTS,Username FROM PackageBases ";
+ $q.= "LEFT JOIN Users ON FlaggerUID = Users.ID ";
+ $q.= "WHERE PackageBases.ID = " . $base_id . " ";
+ $q.= "AND PackageBases.OutOfDateTS IS NOT NULL";
+ $result = $dbh->query($q);
+
+ $row = array();
+
+ if (!$result) {
+ $row['error'] = __("Error retrieving package details.");
+ }
+ else {
+ $row = $result->fetch(PDO::FETCH_ASSOC);
+ if (empty($row)) {
+ $row['error'] = __("Package details could not be found.");
+ }
+ }
+
+ return $row;
+}
+
+/**
* Delete package bases
*
* @param array $base_ids Array of package base IDs to delete
diff --git a/web/template/flag_comment.php b/web/template/flag_comment.php
new file mode 100644
index 0000000..36af43e
--- /dev/null
+++ b/web/template/flag_comment.php
@@ -0,0 +1,25 @@
+<div class="box">
+ <h2><?= __('Flagged Out-of-Date Comment: %s', htmlspecialchars($pkgbase_name)) ?></h2>
+ <p>
+ <?php if (isset($message['Username'])): ?>
+ <?= __('%s%s%s flagged %s%s%s out-of-date on %s%s%s for the following reason:',
+ '<strong>', html_format_username($message['Username']), '</strong>',
+ '<strong>', htmlspecialchars($pkgbase_name), '</strong>',
+ '<strong>', gmdate('Y-m-d', $message['OutOfDateTS']), '</strong>'); ?>
+ <?php else: ?>
+ <?= __('%s%s%s is not flagged out-of-date.',
+ '<strong>', htmlspecialchars($pkgbase_name), '</strong>'); ?>
+ <?php endif; ?>
+ </p>
+ <p>
+ <div class="article-content">
+ <blockquote><p><?= parse_comment($message['FlaggerComment']) ?></p></blockquote>
+ </div>
+ </p>
+ <p>
+ <form action="<?= htmlspecialchars(get_pkgbase_uri($pkgbase_name), ENT_QUOTES) ?>">
+ <input type="submit" value="<?= __("Return to Details") ?>" />
+ </form>
+ </p>
+</div>
+
diff --git a/web/template/pkgbase_actions.php b/web/template/pkgbase_actions.php
index f8968fb..85b1c3b 100644
--- a/web/template/pkgbase_actions.php
+++ b/web/template/pkgbase_actions.php
@@ -8,7 +8,7 @@
</li>
<li><a href="<?= $snapshot_uri ?>"><?= __('Download snapshot') ?></a>
<li><a href="https://wiki.archlinux.org/index.php/Special:Search?search=<?= urlencode($row['Name']) ?>"><?= __('Search wiki') ?></a></li>
- <li><span class="flagged"><?php if ($row["OutOfDateTS"] !== NULL) { echo __('Flagged out-of-date')." (${out_of_date_time})"; } ?></span></li>
+ <li><span class="flagged"><?= $row["OutOfDateTS"] !== NULL ? html_action_link($base_uri . 'flag-comment/', __('Flagged out-of-date %s', "(${out_of_date_time})")) : "" ?></span></li>
<?php if ($row["OutOfDateTS"] === NULL): ?>
<li><?= html_action_link($base_uri . 'flag/', __('Flag package out-of-date')) ?></li>
<?php elseif (($row["OutOfDateTS"] !== NULL) && has_credential(CRED_PKGBASE_UNFLAG, $unflaggers)): ?>