From d40b2792b638e68f3040f4a55d30d1b3ef3cbe44 Mon Sep 17 00:00:00 2001
From: Michael <heluecht@pirati.ca>
Date: Mon, 28 Jan 2019 21:22:03 +0000
Subject: [PATCH] Display mentioned users and in the comment box by default

---
 src/Model/Item.php                            |  4 +--
 src/Object/Post.php                           | 32 +++++++++++++++++++
 view/templates/comment_item.tpl               |  2 +-
 .../duepuntozero/templates/comment_item.tpl   |  2 +-
 view/theme/frio/templates/comment_item.tpl    |  2 +-
 view/theme/quattro/templates/comment_item.tpl |  2 +-
 view/theme/vier/templates/comment_item.tpl    |  2 +-
 7 files changed, 39 insertions(+), 7 deletions(-)

diff --git a/src/Model/Item.php b/src/Model/Item.php
index 67071db318..db9fbf44f6 100644
--- a/src/Model/Item.php
+++ b/src/Model/Item.php
@@ -559,10 +559,10 @@ class Item extends BaseObject
 
 		$fields['permissionset'] = ['allow_cid', 'allow_gid', 'deny_cid', 'deny_gid'];
 
-		$fields['author'] = ['url' => 'author-link', 'name' => 'author-name',
+		$fields['author'] = ['url' => 'author-link', 'name' => 'author-name', 'addr' => 'author-addr',
 			'thumb' => 'author-avatar', 'nick' => 'author-nick', 'network' => 'author-network'];
 
-		$fields['owner'] = ['url' => 'owner-link', 'name' => 'owner-name',
+		$fields['owner'] = ['url' => 'owner-link', 'name' => 'owner-name', 'addr' => 'owner-addr',
 			'thumb' => 'owner-avatar', 'nick' => 'owner-nick', 'network' => 'owner-network'];
 
 		$fields['contact'] = ['url' => 'contact-link', 'name' => 'contact-name', 'thumb' => 'contact-avatar',
diff --git a/src/Object/Post.php b/src/Object/Post.php
index c9e5cddb69..1e3f5bd99d 100644
--- a/src/Object/Post.php
+++ b/src/Object/Post.php
@@ -768,6 +768,35 @@ class Post extends BaseObject
 		return $this->comment_box_template;
 	}
 
+	/**
+	 * Get default text for the comment box
+	 *
+	 * @param integer $parent_id ID of the parent item
+	 *
+	 * @return string
+	 */
+	private function getDefaultText($parent_id)
+	{
+		$item = Item::selectFirst(['author-addr'], ['id' => $parent_id]);
+		if (!DBA::isResult($item) || empty($item['author-addr'])) {
+			// Should not happen
+			return '';
+		}
+
+		$text = '@'.$item['author-addr'].' ';
+
+		$terms = Term::tagArrayFromItemId($parent_id, TERM_MENTION);
+
+		foreach ($terms as $term) {
+			$profile = Contact::getDetailsByURL($term['url']);
+			if (!empty($profile['addr']) && !strstr($text, $profile['addr'])) {
+				$text .= '@' . $profile['addr'] . ' ';
+			}
+		}
+
+		return $text;
+	}
+
 	/**
 	 * Get the comment box
 	 *
@@ -804,6 +833,8 @@ class Post extends BaseObject
 			$uid = $conv->getProfileOwner();
 			$parent_uid = $this->getDataValue('uid');
 
+			$default_text = $this->getDefaultText($this->getId());
+
 			if (!is_null($parent_uid) && ($uid != $parent_uid)) {
 				$uid = $parent_uid;
 			}
@@ -817,6 +848,7 @@ class Post extends BaseObject
 				'$id'          => $this->getId(),
 				'$parent'      => $this->getId(),
 				'$qcomment'    => $qcomment,
+				'$default'     => $default_text,
 				'$profile_uid' => $uid,
 				'$mylink'      => $a->removeBaseURL($a->contact['url']),
 				'$mytitle'     => L10n::t('This is you'),
diff --git a/view/templates/comment_item.tpl b/view/templates/comment_item.tpl
index 6ad01b991b..9412b681eb 100644
--- a/view/templates/comment_item.tpl
+++ b/view/templates/comment_item.tpl
@@ -17,7 +17,7 @@
 					<a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
 				</div>
 				<div class="comment-edit-photo-end"></div>
-				<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" placeholder="{{$comment}}" onFocus="commentOpen(this,{{$id}});" onBlur="commentClose(this,{{$id}});"></textarea>
+				<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" placeholder="{{$comment}}" onFocus="commentOpen(this,{{$id}});" onBlur="commentClose(this,{{$id}});">{{$default}}</textarea>
 				{{if $qcomment}}
 					<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});" >
 					<option value=""></option>
diff --git a/view/theme/duepuntozero/templates/comment_item.tpl b/view/theme/duepuntozero/templates/comment_item.tpl
index f1ef37f14b..e6d81ac2bd 100644
--- a/view/theme/duepuntozero/templates/comment_item.tpl
+++ b/view/theme/duepuntozero/templates/comment_item.tpl
@@ -44,7 +44,7 @@
 						data-role="insert-formatting" data-bbcode="video" data-id="{{$id}}"></a></li>
 				</ul>
 				<div class="comment-edit-bb-end"></div>
-				<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" placeholder="{{$comment}}" onFocus="commentOpen(this,{{$id}});cmtBbOpen(this, {{$id}});" onBlur="commentClose(this,{{$id}});cmtBbClose(this,{{$id}});"></textarea>
+				<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" placeholder="{{$comment}}" onFocus="commentOpen(this,{{$id}});cmtBbOpen(this, {{$id}});" onBlur="commentClose(this,{{$id}});cmtBbClose(this,{{$id}});">{{$default}}</textarea>
 				{{if $qcomment}}
 					<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});">
 					<option value=""></option>
diff --git a/view/theme/frio/templates/comment_item.tpl b/view/theme/frio/templates/comment_item.tpl
index 4ef5f2caa1..4edc8f473e 100644
--- a/view/theme/frio/templates/comment_item.tpl
+++ b/view/theme/frio/templates/comment_item.tpl
@@ -14,7 +14,7 @@
 		<input type="hidden" name="post_id_random" value="{{$rand_num}}" />
 
 		<div class="bb form-group">
-			<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty form-control text-autosize" name="body" placeholder="{{$comment}}" onFocus="commentOpenUI(this,{{$id}});"></textarea>
+			<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty form-control text-autosize" name="body" placeholder="{{$comment}}" onFocus="commentOpenUI(this,{{$id}});">{{$default}}</textarea>
 		</div>
 		{{if $qcomment}}
 			<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});">
diff --git a/view/theme/quattro/templates/comment_item.tpl b/view/theme/quattro/templates/comment_item.tpl
index c314acc66c..f1365035a4 100644
--- a/view/theme/quattro/templates/comment_item.tpl
+++ b/view/theme/quattro/templates/comment_item.tpl
@@ -42,7 +42,7 @@
 					class="comment-edit-text-empty"
 					name="body"
 					placeholder="{{$comment}}"
-					onFocus="commentOpen(this,{{$id}}) && cmtBbOpen({{$id}});"></textarea>
+					onFocus="commentOpen(this,{{$id}}) && cmtBbOpen({{$id}});">{{$default}}</textarea>
 				{{if $qcomment}}
 					<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});">
 					<option value=""></option>
diff --git a/view/theme/vier/templates/comment_item.tpl b/view/theme/vier/templates/comment_item.tpl
index 3e72df6dc6..4ef31b7af8 100644
--- a/view/theme/vier/templates/comment_item.tpl
+++ b/view/theme/vier/templates/comment_item.tpl
@@ -17,7 +17,7 @@
 					<a class="comment-edit-photo-link" href="{{$mylink}}" title="{{$mytitle}}"><img class="my-comment-photo" src="{{$myphoto}}" alt="{{$mytitle}}" title="{{$mytitle}}" /></a>
 				</div>
 				<div class="comment-edit-photo-end"></div>
-				<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" placeholder="{{$comment}}" onFocus="commentOpen(this,{{$id}});"></textarea>
+				<textarea id="comment-edit-text-{{$id}}" class="comment-edit-text-empty" name="body" placeholder="{{$comment}}" onFocus="commentOpen(this,{{$id}});">{{$default}}</textarea>
 				{{if $qcomment}}
 					<select id="qcomment-select-{{$id}}" name="qcomment-{{$id}}" class="qcomment" onchange="qCommentInsert(this,{{$id}});">
 					<option value=""></option>