+ vm.delete = function(comment) {
+ $http.delete(window.baseUrl(`/ajax/comment/${comment.id}`)).then(resp => {
+ if (!isCommentOpSuccess(resp)) {
+ return;
+ }
+ updateComment(comment, resp.data, $timeout, true);
+ }, function (resp) {
+ if (isCommentOpSuccess(resp)) {
+ events.emit('success', trans('entities.comment_deleted'));
+ } else {
+ events.emit('error', trans('error.comment_delete'));
+ }
+ });
+ };
+ }]);
+
+ // Controller used to fetch all comments for a page
+ ngApp.controller('CommentListController', ['$scope', '$http', '$timeout', '$location', function ($scope, $http, $timeout, $location) {
+ let vm = this;
+ $scope.errors = {};
+ // keep track of comment levels
+ $scope.level = 1;
+ vm.totalCommentsStr = trans('entities.comments_loading');
+ vm.permissions = {};
+ vm.trans = window.trans;
+
+ $scope.$on('evt.new-comment', function (event, comment) {
+ // add the comment to the comment list.
+ vm.comments.push(comment);
+ ++vm.totalComments;
+ setTotalCommentMsg();
+ event.stopPropagation();
+ event.preventDefault();
+ });
+
+ vm.canEditDelete = function (comment, prop) {
+ if (!comment.active) {
+ return false;
+ }
+ let propAll = prop + '_all';
+ let propOwn = prop + '_own';
+
+ if (vm.permissions[propAll]) {
+ return true;
+ }
+
+ if (vm.permissions[propOwn] && comment.created_by.id === vm.current_user_id) {
+ return true;
+ }