diff options
-rw-r--r-- | web/html/css/aurweb.css | 4 | ||||
-rw-r--r-- | web/html/index.php | 3 | ||||
-rw-r--r-- | web/html/pkgflagcomment.php | 19 | ||||
-rw-r--r-- | web/lib/pkgbasefuncs.inc.php | 32 | ||||
-rw-r--r-- | web/template/flag_comment.php | 25 | ||||
-rw-r--r-- | web/template/pkgbase_actions.php | 2 |
6 files changed, 84 insertions, 1 deletions
diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css index 82b83d9e..92ff8989 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 8b5cb621..0a9fd05d 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 00000000..98680ef6 --- /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 1abe426b..2b1201d5 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 00000000..36af43ea --- /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 f8968fb2..85b1c3b7 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)): ?> |