]> BookStack Code Mirror - bookstack/blob - resources/views/comments/comment.blade.php
Comments: Added archive endpoints, messages, Js actions and tests
[bookstack] / resources / views / comments / comment.blade.php
1 @php
2     $commentHtml = $comment->safeHtml();
3 @endphp
4 <div component="{{ $readOnly ? '' : 'page-comment' }}"
5      option:page-comment:comment-id="{{ $comment->id }}"
6      option:page-comment:comment-local-id="{{ $comment->local_id }}"
7      option:page-comment:updated-text="{{ trans('entities.comment_updated_success') }}"
8      option:page-comment:deleted-text="{{ trans('entities.comment_deleted_success') }}"
9      option:page-comment:archive-text="{{ $comment->archived ? trans('entities.comment_unarchive_success') : trans('entities.comment_archive_success') }}"
10      option:page-comment:wysiwyg-language="{{ $locale->htmlLang() }}"
11      option:page-comment:wysiwyg-text-direction="{{ $locale->htmlDirection() }}"
12      id="comment{{$comment->local_id}}"
13      class="comment-box">
14     <div class="header">
15         <div class="flex-container-row wrap items-center gap-x-xs">
16             @if ($comment->createdBy)
17                 <div>
18                     <img width="50" src="{{ $comment->createdBy->getAvatar(50) }}" class="avatar block mr-xs" alt="{{ $comment->createdBy->name }}">
19                 </div>
20             @endif
21             <div class="meta text-muted flex-container-row wrap items-center flex text-small">
22                 @if ($comment->createdBy)
23                     <a href="{{ $comment->createdBy->getProfileUrl() }}">{{ $comment->createdBy->getShortName(16) }}</a>
24                 @else
25                     {{ trans('common.deleted_user') }}
26                 @endif
27                 <span title="{{ $comment->created_at }}">&nbsp;{{ trans('entities.comment_created', ['createDiff' => $comment->created_at->diffForHumans() ]) }}</span>
28                 @if($comment->isUpdated())
29                     <span class="mx-xs">&bull;</span>
30                     <span title="{{ trans('entities.comment_updated', ['updateDiff' => $comment->updated_at, 'username' => $comment->updatedBy->name ?? trans('common.deleted_user')]) }}">
31                  {{ trans('entities.comment_updated_indicator') }}
32                     </span>
33                 @endif
34             </div>
35             <div class="right-meta flex-container-row justify-flex-end items-center px-s">
36                 @if(!$readOnly && (userCan('comment-create-all') || userCan('comment-update', $comment) || userCan('comment-delete', $comment)))
37                 <div class="actions mr-s">
38                     @if(userCan('comment-create-all'))
39                         <button refs="page-comment@reply-button" type="button" class="text-button text-muted hover-underline text-small p-xs">@icon('reply') {{ trans('common.reply') }}</button>
40                     @endif
41                     @if(userCan('comment-update', $comment) || userCan('comment-delete', $comment))
42                         <button refs="page-comment@archive-button"
43                                 type="button"
44                                 data-is-archived="{{ $comment->archived ? 'true' : 'false' }}"
45                                 class="text-button text-muted hover-underline text-small p-xs">@icon('archive') {{ trans('common.' . ($comment->archived ? 'unarchive' : 'archive')) }}</button>
46                     @endif
47                     @if(userCan('comment-update', $comment))
48                         <button refs="page-comment@edit-button" type="button" class="text-button text-muted hover-underline text-small p-xs">@icon('edit') {{ trans('common.edit') }}</button>
49                     @endif
50                     @if(userCan('comment-delete', $comment))
51                         <div component="dropdown" class="dropdown-container">
52                             <button type="button" refs="dropdown@toggle" aria-haspopup="true" aria-expanded="false" class="text-button text-muted hover-underline text-small p-xs">@icon('delete') {{ trans('common.delete') }}</button>
53                             <ul refs="dropdown@menu" class="dropdown-menu" role="menu">
54                                 <li class="px-m text-small text-muted pb-s">{{trans('entities.comment_delete_confirm')}}</li>
55                                 <li>
56                                     <button refs="page-comment@delete-button" type="button" class="text-button text-neg icon-item">
57                                         @icon('delete')
58                                         <div>{{ trans('common.delete') }}</div>
59                                     </button>
60                                 </li>
61                             </ul>
62                         </div>
63                     @endif
64                     <span class="text-muted">
65                         &nbsp;&bull;&nbsp;
66                     </span>
67                 </div>
68                 @endif
69                 <div>
70                     <a class="bold text-muted text-small" href="#comment{{$comment->local_id}}">#{{$comment->local_id}}</a>
71                 </div>
72             </div>
73         </div>
74
75     </div>
76
77     <div refs="page-comment@content-container" class="content">
78         @if ($comment->parent_id)
79             <p class="comment-reply">
80                 <a class="text-muted text-small" href="#comment{{ $comment->parent_id }}">@icon('reply'){{ trans('entities.comment_in_reply_to', ['commentId' => '#' . $comment->parent_id]) }}</a>
81             </p>
82         @endif
83         @if($comment->content_ref)
84             <div class="comment-reference-indicator-wrap">
85                 <a component="page-comment-reference"
86                    option:page-comment-reference:reference="{{ $comment->content_ref }}"
87                    option:page-comment-reference:view-comment-text="{{ trans('entities.comment_view') }}"
88                    option:page-comment-reference:jump-to-thread-text="{{ trans('entities.comment_jump_to_thread') }}"
89                    option:page-comment-reference:close-text="{{ trans('common.close') }}"
90                    href="#">@icon('bookmark')Reference <span>- Outdated</span></a>
91             </div>
92         @endif
93         {!! $commentHtml  !!}
94     </div>
95
96     @if(!$readOnly && userCan('comment-update', $comment))
97         <form novalidate refs="page-comment@form" hidden class="content pt-s px-s block">
98             <div class="form-group description-input">
99                 <textarea refs="page-comment@input" name="html" rows="3" placeholder="{{ trans('entities.comment_placeholder') }}">{{ $commentHtml }}</textarea>
100             </div>
101             <div class="form-group text-right">
102                 <button type="button" class="button outline" refs="page-comment@form-cancel">{{ trans('common.cancel') }}</button>
103                 <button type="submit" class="button">{{ trans('entities.comment_save') }}</button>
104             </div>
105         </form>
106     @endif
107
108 </div>