From 2694bb8fab9a43e914a1dbf96e6add74c9b30a31 Mon Sep 17 00:00:00 2001
From: Dan Brown <ssddanbrown@googlemail.com>
Date: Sat, 13 Apr 2019 10:50:24 +0100
Subject: [PATCH] Updated the design of the comments section

---
 .../assets/js/components/page-comments.js     |  2 +-
 resources/assets/sass/_components.scss        | 17 ++--
 resources/views/comments/comment.blade.php    | 83 +++++++++----------
 resources/views/comments/comments.blade.php   | 30 +------
 resources/views/comments/create.blade.php     | 34 ++++++++
 5 files changed, 85 insertions(+), 81 deletions(-)
 create mode 100644 resources/views/comments/create.blade.php

diff --git a/resources/assets/js/components/page-comments.js b/resources/assets/js/components/page-comments.js
index c86b90d2c..0c8b32b7c 100644
--- a/resources/assets/js/components/page-comments.js
+++ b/resources/assets/js/components/page-comments.js
@@ -54,7 +54,7 @@ class PageComments {
         commentElem.querySelector('[comment-edit-container]').style.display = 'block';
         let textArea = commentElem.querySelector('[comment-edit-container] textarea');
         let lineCount = textArea.value.split('\n').length;
-        textArea.style.height = (lineCount * 20) + 'px';
+        textArea.style.height = ((lineCount * 20) + 40) + 'px';
         this.editingComment = commentElem;
     }
 
diff --git a/resources/assets/sass/_components.scss b/resources/assets/sass/_components.scss
index 09b7c5f02..044b8ec10 100644
--- a/resources/assets/sass/_components.scss
+++ b/resources/assets/sass/_components.scss
@@ -604,27 +604,26 @@ body.flexbox-support #entity-selector-wrap .popup-body .form-group {
 }
 
 .comment-box {
-  clear: left;
   border: 1px solid #DDD;
-  margin-bottom: $-s;
-  border-radius: 3px;
+  border-radius: 4px;
+  background-color: #FFF;
   .content {
-    padding: $-s;
     font-size: 0.666em;
     p, ul, ol {
       font-size: $fs-m;
       margin: .5em 0;
     }
   }
-  .reply-row {
-    padding: $-xs $-s;
+  .actions {
+    opacity: 0;
+    transition: opacity ease-in-out 120ms;
+  }
+  &:hover .actions {
+    opacity: 1;
   }
 }
 
 .comment-box .header {
-  padding: $-xs $-s;
-  background-color: #f8f8f8;
-  border-bottom: 1px solid #DDD;
   .meta {
     img, a, span {
       display: inline-block;
diff --git a/resources/views/comments/comment.blade.php b/resources/views/comments/comment.blade.php
index 9f955f691..2993425bb 100644
--- a/resources/views/comments/comment.blade.php
+++ b/resources/views/comments/comment.blade.php
@@ -1,55 +1,52 @@
-<div class="comment-box" comment="{{ $comment->id }}" local-id="{{$comment->local_id}}" parent-id="{{$comment->parent_id}}" id="comment{{$comment->local_id}}">
-    <div class="header">
-
-        <div class="float right actions">
-            @if(userCan('comment-update', $comment))
-                <button type="button" class="text-button" action="edit" title="{{ trans('common.edit') }}">@icon('edit')</button>
-            @endif
-            @if(userCan('comment-create-all'))
-                <button type="button" class="text-button" action="reply" title="{{ trans('common.reply') }}">@icon('reply')</button>
-            @endif
-            @if(userCan('comment-delete', $comment))
-
-                <div dropdown class="dropdown-container">
-                    <button type="button" dropdown-toggle class="text-button" title="{{ trans('common.delete') }}">@icon('delete')</button>
-                    <ul>
-                        <li class="px-m"><small class="text-muted">{{trans('entities.comment_delete_confirm')}}</small></li>
-                        <li><a action="delete" class="text-button text-neg" >@icon('delete'){{ trans('common.delete') }}</a></li>
-                    </ul>
-                </div>
-            @endif
-        </div>
-
-        <div class="meta">
-            <a href="#comment{{$comment->local_id}}" class="text-muted">#{{$comment->local_id}}</a>
-            &nbsp;&nbsp;
-            @if ($comment->createdBy)
-                <img width="50" src="{{ $comment->createdBy->getAvatar(50) }}" class="avatar" alt="{{ $comment->createdBy->name }}">
-                &nbsp;
-                <a href="{{ $comment->createdBy->getProfileUrl() }}">{{ $comment->createdBy->name }}</a>
-            @else
-                <span>{{ trans('common.deleted_user') }}</span>
-            @endif
-            <span title="{{ $comment->created_at }}">
-            {{ trans('entities.comment_created', ['createDiff' => $comment->created]) }}
-        </span>
-            @if($comment->isUpdated())
-                <span title="{{ $comment->updated_at }}">
+<div class="comment-box mb-m" comment="{{ $comment->id }}" local-id="{{$comment->local_id}}" parent-id="{{$comment->parent_id}}" id="comment{{$comment->local_id}}">
+    <div class="header p-s">
+        <div class="grid half">
+            <div class="meta">
+                <a href="#comment{{$comment->local_id}}" class="text-muted">#{{$comment->local_id}}</a>
+                &nbsp;&nbsp;
+                @if ($comment->createdBy)
+                    <img width="50" src="{{ $comment->createdBy->getAvatar(50) }}" class="avatar" alt="{{ $comment->createdBy->name }}">
+                    &nbsp;
+                    <a href="{{ $comment->createdBy->getProfileUrl() }}">{{ $comment->createdBy->name }}</a>
+                @else
+                    <span>{{ trans('common.deleted_user') }}</span>
+                @endif
+                <span title="{{ $comment->created_at }}">{{ trans('entities.comment_created', ['createDiff' => $comment->created]) }}</span>
+                @if($comment->isUpdated())
+                    <span title="{{ $comment->updated_at }}">
                 &bull;&nbsp;
                     {{ trans('entities.comment_updated', ['updateDiff' => $comment->updated, 'username' => $comment->updatedBy? $comment->updatedBy->name : trans('common.deleted_user')]) }}
             </span>
-            @endif
+                @endif
+            </div>
+            <div class="actions text-right">
+                @if(userCan('comment-update', $comment))
+                    <button type="button" class="text-button" action="edit" title="{{ trans('common.edit') }}">@icon('edit')</button>
+                @endif
+                @if(userCan('comment-create-all'))
+                    <button type="button" class="text-button" action="reply" title="{{ trans('common.reply') }}">@icon('reply')</button>
+                @endif
+                @if(userCan('comment-delete', $comment))
+                    <div dropdown class="dropdown-container">
+                        <button type="button" dropdown-toggle class="text-button" title="{{ trans('common.delete') }}">@icon('delete')</button>
+                        <ul>
+                            <li class="px-m text-small text-muted pb-s">{{trans('entities.comment_delete_confirm')}}</li>
+                            <li><a action="delete" class="text-button text-neg" >@icon('delete'){{ trans('common.delete') }}</a></li>
+                        </ul>
+                    </div>
+                @endif
+            </div>
         </div>
 
     </div>
 
     @if ($comment->parent_id)
-        <div class="reply-row primary-background-light text-muted">
+        <div class="reply-row primary-background-light text-muted px-s py-xs mb-s">
             {!! trans('entities.comment_in_reply_to', ['commentId' => '<a href="#comment'.$comment->parent_id.'">#'.$comment->parent_id.'</a>']) !!}
         </div>
     @endif
 
-    <div comment-content class="content">
+    <div comment-content class="content px-s pb-s">
         <div class="form-group loading" style="display: none;">
             @include('partials.loading-icon', ['text' => trans('entities.comment_deleting')])
         </div>
@@ -57,10 +54,10 @@
     </div>
 
     @if(userCan('comment-update', $comment))
-        <div comment-edit-container style="display: none;" class="content">
+        <div comment-edit-container style="display: none;" class="content px-s">
             <form novalidate>
-                <div class="form-group">
-                    <textarea name="markdown" rows="3" v-model="comment.text" placeholder="{{ trans('entities.comment_placeholder') }}">{{ $comment->text }}</textarea>
+                <div class="form-group description-input">
+                    <textarea name="markdown" rows="3" placeholder="{{ trans('entities.comment_placeholder') }}">{{ $comment->text }}</textarea>
                 </div>
                 <div class="form-group text-right">
                     <button type="button" class="button outline" action="closeUpdateForm">{{ trans('common.cancel') }}</button>
diff --git a/resources/views/comments/comments.blade.php b/resources/views/comments/comments.blade.php
index bc42e0a0c..71b7a2ef6 100644
--- a/resources/views/comments/comments.blade.php
+++ b/resources/views/comments/comments.blade.php
@@ -1,6 +1,5 @@
-{{--TODO--}}
 <div page-comments page-id="{{ $page->id }}" class="comments-list">
-  <h5 comments-title class="float left">{{ trans_choice('entities.comment_count', count($page->comments), ['count' => count($page->comments)]) }}</h5>
+    <h5 comments-title>{{ trans_choice('entities.comment_count', count($page->comments), ['count' => count($page->comments)]) }}</h5>
 
     <div class="comment-container" comment-container>
         @foreach($page->comments as $comment)
@@ -9,32 +8,7 @@
     </div>
 
     @if(userCan('comment-create-all'))
-
-        <div class="comment-box" comment-box style="display:none;">
-            <div class="header">@icon('comment') {{ trans('entities.comment_new') }}</div>
-            <div comment-form-reply-to class="reply-row primary-background-light text-muted" style="display: none;">
-                <button class="text-button float right" action="remove-reply-to">{{ trans('common.remove') }}</button>
-                {!! trans('entities.comment_in_reply_to', ['commentId' => '<a href=""></a>']) !!}
-            </div>
-            <div class="content" comment-form-container>
-                <form novalidate>
-                    <div class="form-group">
-                        <textarea name="markdown" rows="3" v-model="comment.text" placeholder="{{ trans('entities.comment_placeholder') }}"></textarea>
-                    </div>
-                    <div class="form-group text-right">
-                        <button type="button" class="button outline" action="hideForm">{{ trans('common.cancel') }}</button>
-                        <button type="submit" class="button primary">{{ trans('entities.comment_save') }}</button>
-                    </div>
-                    <div class="form-group loading" style="display: none;">
-                        @include('partials.loading-icon', ['text' => trans('entities.comment_saving')])
-                    </div>
-                </form>
-            </div>
-        </div>
-
-        <div class="form-group" comment-add-button>
-            <button type="button" action="addComment" class="button outline float right">{{ trans('entities.comment_add') }}</button>
-        </div>
+        @include('comments.create')
     @endif
 
 </div>
\ No newline at end of file
diff --git a/resources/views/comments/create.blade.php b/resources/views/comments/create.blade.php
new file mode 100644
index 000000000..29d6f1974
--- /dev/null
+++ b/resources/views/comments/create.blade.php
@@ -0,0 +1,34 @@
+<div class="comment-box" comment-box style="display:none;">
+    <div class="header p-s">{{ trans('entities.comment_new') }}</div>
+    <div comment-form-reply-to class="reply-row primary-background-light text-muted px-s py-xs mb-s" style="display: none;">
+        <div class="grid left-focus v-center">
+            <div>
+                {!! trans('entities.comment_in_reply_to', ['commentId' => '<a href=""></a>']) !!}
+            </div>
+            <div class="text-right">
+                <button class="text-button" action="remove-reply-to">{{ trans('common.remove') }}</button>
+            </div>
+        </div>
+    </div>
+    <div class="content px-s" comment-form-container>
+        <form novalidate>
+            <div class="form-group description-input">
+                        <textarea name="markdown" rows="3"
+                                  placeholder="{{ trans('entities.comment_placeholder') }}"></textarea>
+            </div>
+            <div class="form-group text-right">
+                <button type="button" class="button outline"
+                        action="hideForm">{{ trans('common.cancel') }}</button>
+                <button type="submit" class="button primary">{{ trans('entities.comment_save') }}</button>
+            </div>
+            <div class="form-group loading" style="display: none;">
+                @include('partials.loading-icon', ['text' => trans('entities.comment_saving')])
+            </div>
+        </form>
+    </div>
+</div>
+
+<div class="form-group text-right" comment-add-button>
+    <button type="button" action="addComment"
+            class="button outline">{{ trans('entities.comment_add') }}</button>
+</div>
\ No newline at end of file