1
0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-08-07 23:03:00 +03:00

#47 - Adds comment level permissions to the front-end.

This commit is contained in:
Abijeet
2017-06-04 11:17:14 +05:30
parent 6ff440e677
commit 2fd421b115
7 changed files with 41 additions and 15 deletions

View File

@@ -756,6 +756,7 @@ module.exports = function (ngApp, events) {
// keep track of comment levels
$scope.level = 1;
vm.totalCommentsStr = 'Loading...';
vm.permissions = {};
$scope.$on('evt.new-comment', function (event, comment) {
// add the comment to the comment list.
@@ -764,6 +765,21 @@ module.exports = function (ngApp, events) {
event.preventDefault();
});
vm.canEdit = function (comment) {
if (vm.permissions.comment_update_all) {
return true;
}
if (vm.permissions.comment_update_own && comment.created_by.id === vm.current_user_id) {
return true;
}
return false;
}
vm.canComment = function () {
return vm.permissions.comment_create;
}
$timeout(function() {
$http.get(window.baseUrl(`/ajax/page/${$scope.pageId}/comments/`)).then(resp => {
if (!resp.data || resp.data.success !== true) {
@@ -772,6 +788,9 @@ module.exports = function (ngApp, events) {
}
vm.comments = resp.data.comments;
vm.totalComments = resp.data.total;
vm.permissions = resp.data.permissions;
vm.current_user_id = resp.data.user_id;
// TODO : Fetch message from translate.
if (vm.totalComments === 0) {
vm.totalCommentsStr = 'No comments found.';

View File

@@ -908,7 +908,7 @@ module.exports = function (ngApp, events) {
}
function removeDupe() {
let $existingElement = $document.find('.comments-list comment-reply');
let $existingElement = $document.find('.comments-list comment-reply, .comments-list comment-edit');
if (!$existingElement.length) {
return;
}

View File

@@ -12,5 +12,7 @@
</div>
</div>
@include('comments/comment-reply', ['pageId' => $pageId])
<div ng-if="::vm.canComment()">
@include('comments/comment-reply', ['pageId' => $pageId])
</div>
</div>

View File

@@ -11,8 +11,8 @@
</div>
<div class="comment-actions">
<ul>
<li ng-if="level < 3"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment" is-reply="true">Reply</a></li>
<li><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment">Edit</a></li>
<li ng-if="::(level < 3 && vm.canComment())"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment" is-reply="true">Reply</a></li>
<li ng-if="::vm.canEdit(comment)"><a href="#" comment-reply-link no-comment-reply-dupe="true" comment="comment" >Edit</a></li>
<li>Created <a title="@{{::comment.created.day_time_str}}" href="#comment-@{{::comment.id}}-@{{::pageId}}">@{{::comment.created.diff}}</a></li>
<li ng-if="comment.updated"><span title="@{{comment.updated.day_time_str}}">Updated @{{comment.updated.diff}} by
<a href="@{{comment.updated_by.profile_url}}">@{{comment.updated_by.name}}</a></span></li>