From 9cde6b0566390002d167703fa900129bb90e07d8 Mon Sep 17 00:00:00 2001
From: Marcel Korpel <marcel.korpel@gmail.com>
Date: Fri, 10 Jul 2015 18:47:33 +0200
Subject: Show dateline when a comment is edited or deleted

Signed-off-by: Marcel Korpel <marcel.korpel@gmail.com>
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
---
 web/html/css/aurweb.css       |  5 +++++
 web/lib/pkgbasefuncs.inc.php  |  9 ++++++---
 web/template/pkg_comments.php | 38 ++++++++++++++++++++++++++------------
 3 files changed, 37 insertions(+), 15 deletions(-)

diff --git a/web/html/css/aurweb.css b/web/html/css/aurweb.css
index b5ca1f38..b33726c4 100644
--- a/web/html/css/aurweb.css
+++ b/web/html/css/aurweb.css
@@ -96,6 +96,11 @@
 	color: #999;
 }
 
+.edited {
+	font-size: 0.9em;
+	color: #999;
+}
+
 .delete-comment-form, .edit-comment {
 	float: right;
 	margin-left: 8px;
diff --git a/web/lib/pkgbasefuncs.inc.php b/web/lib/pkgbasefuncs.inc.php
index 1ae31665..6057d104 100644
--- a/web/lib/pkgbasefuncs.inc.php
+++ b/web/lib/pkgbasefuncs.inc.php
@@ -47,9 +47,12 @@ function pkgbase_comments($base_id, $limit, $include_deleted) {
 	}
 
 	$dbh = DB::connect();
-	$q = "SELECT PackageComments.ID, UserName, UsersID, Comments, ";
-	$q.= "CommentTS, DelUsersID FROM PackageComments LEFT JOIN Users ";
-	$q.= "ON PackageComments.UsersID = Users.ID ";
+	$q = "SELECT PackageComments.ID, A.UserName AS UserName, UsersID, Comments, ";
+	$q.= "CommentTS, EditedTS, B.UserName AS EditUserName, ";
+	$q.= "DelUsersID, C.UserName AS DelUserName FROM PackageComments ";
+	$q.= "LEFT JOIN Users A ON PackageComments.UsersID = A.ID ";
+	$q.= "LEFT JOIN Users B ON PackageComments.EditedUsersID = B.ID ";
+	$q.= "LEFT JOIN Users C ON PackageComments.DelUsersID = C.ID ";
 	$q.= "WHERE PackageBaseID = " . $base_id . " ";
 	if (!$include_deleted) {
 		$q.= "AND DelUsersID IS NULL ";
diff --git a/web/template/pkg_comments.php b/web/template/pkg_comments.php
index 6cc95555..8650db29 100644
--- a/web/template/pkg_comments.php
+++ b/web/template/pkg_comments.php
@@ -16,19 +16,33 @@ $count = pkgbase_comments_count($base_id, $include_deleted);
 	</h3>
 
 	<?php while (list($indx, $row) = each($comments)): ?>
-		<?php if ($row['UserName'] && $SID):
-			$row['UserName'] = "<a href=\"" . get_user_uri($row['UserName']) . "\">{$row['UserName']}</a>";
-		endif; ?>
+		<?php
+		$date_fmtd = gmdate('Y-m-d H:i', $row['CommentTS']);
+		if ($row['UserName']) {
+			$user_fmtd = html_format_username($row['UserName']);
+			$heading = __('%s commented on %s', $user_fmtd, $date_fmtd);
+		} else {
+			$heading = __('Anonymous comment on %s', $date_fmtd);
+		}
+
+		if ($row['EditedTS']) {
+			$date_fmtd = gmdate('Y-m-d H:i', $row['EditedTS']);
+			$heading .= ' <span class="edited">(';
+			if ($row['DelUsersID']) {
+				$user_fmtd = html_format_username($row['DelUserName']);
+				$heading .= __('deleted on %s by %s', $date_fmtd, $user_fmtd);
+			} else {
+				$user_fmtd = html_format_username($row['EditUserName']);
+				$heading .= __('last edited on %s by %s', $date_fmtd, $user_fmtd);
+			}
+			$heading .= ')</span>';
+		}
+
+		$row['DelUserName'] = html_format_username($row['DelUserName']);
+		$row['EditUserName'] = html_format_username($row['EditUserName']);
+		?>
 		<h4<?php if ($row['DelUsersID']): ?> class="comment-deleted"<?php endif; ?>>
-			<?php if ($row['UserName']): ?>
-			<?= __('%s commented', $row['UserName']) ?>
-			<?php else: ?>
-			<?= __('Anonymous comment') ?>
-			<?php endif; ?>
-			<?= __('on %s', gmdate('Y-m-d H:i', $row['CommentTS'])) ?>
-			<?php if ($row['DelUsersID']): ?>
-			(<?= __('deleted') ?>)
-			<?php endif; ?>
+			<?= $heading ?>
 			<?php if (!$row['DelUsersID'] && can_delete_comment_array($row)): ?>
 				<form class="delete-comment-form" method="post" action="<?= htmlspecialchars(get_pkgbase_uri($pkgbase_name), ENT_QUOTES); ?>">
 					<fieldset style="display:inline;">
-- 
cgit v1.2.3-24-g4f1b