[aur-dev] [PATCH 2/2] Add link to flag OOD comment

Mark Weiman mark.weiman at markzz.com
Mon Dec 14 21:18:16 UTC 2015


Implements: FS#46546

Signed-off-by: Mark Weiman <mark.weiman at markzz.com>
---
 web/html/css/aurweb.css          |  4 ++++
 web/html/index.php               |  3 +++
 web/html/pkgflagcomment.php      | 19 +++++++++++++++++++
 web/lib/pkgbasefuncs.inc.php     | 32 ++++++++++++++++++++++++++++++++
 web/template/flag_comment.php    | 25 +++++++++++++++++++++++++
 web/template/pkgbase_actions.php |  2 +-
 6 files changed, 84 insertions(+), 1 deletion(-)
 create mode 100644 web/html/pkgflagcomment.php
 create mode 100644 web/template/flag_comment.php

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 e99d22f..ce0f0f3 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 7b744d5..be8b964 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)): ?>
-- 
2.6.4


More information about the aur-dev mailing list