diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index b04e1ce8073e9422a567009661dbf9b1c5e9992b..9e6cc6126bb21d5b261750dc2c53f583fedcdcb0 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -414,6 +414,12 @@ ServerConnector.deleteOverlayUrl = function(queryParams) { }); }; +ServerConnector.deleteCommentUrl = function(queryParams) { + return this.getApiUrl({ + url : this.getProjectUrl(queryParams) + "comments/" + queryParams.commentId + "/", + }); +}; + ServerConnector.getOverlaysUrl = function(queryParams, filterParams) { return this.getApiUrl({ url : this.getProjectUrl(queryParams) + "overlays/", @@ -1302,6 +1308,18 @@ ServerConnector.removeOverlay = function(params) { }); }; +ServerConnector.removeComment = function(params) { + var self = this; + var queryParams = { + commentId : params.commentId + }; + var filterParams = {}; + return self.getProjectId(params.projectId).then(function(result) { + queryParams.projectId = result; + return self.sendDeleteRequest(self.deleteCommentUrl(queryParams), filterParams); + }); +}; + ServerConnector.getSuggestedQueryList = function(projectId) { var self = this; return self.getProjectId(projectId).then(function(result) { diff --git a/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js b/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js index 98d5ba3fc383827c6852350806375f46312423ac..c4b80659b160f963c291607a94d767a3a4ce60ef 100644 --- a/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js @@ -61,7 +61,7 @@ CommentsAdminPanel.prototype._createGui = function() { title : 'Removed', }, { title : 'Pinned', - }, ] + }, ], }); var projectsCell = Functions.createElement({ @@ -140,6 +140,15 @@ CommentsAdminPanel.prototype.onProjectChange = function() { data.push(self.commentToTableRow(comments[i])); } dataTable.clear().rows.add(data).draw(); + $("[name='commentsTable']", self.getElement()).on("click", "[name='removeComment']", function() { + var button = this; + return ServerConnector.removeComment({ + commentId : $(button).attr("data") + }).then(function() { + $(button).after("<span>YES</span>"); + button.style.display = "none"; + }); + }); }); }; @@ -165,12 +174,19 @@ CommentsAdminPanel.prototype.commentToTableRow = function(comment) { title = comment.getTitle(); } + var remove = null; + if (comment.isRemoved()) { + remove = "YES"; + } else { + remove = "<button name='removeComment' data='" + comment.getId() + "'>REMOVE</button>"; + } + var row = [ comment.getId(), // title, // comment.getAuthor(), // comment.getEmail(), // comment.getContent(), // - toYesNo(comment.isRemoved()), // + remove, // toYesNo(comment.isPinned()) ]; return row; } diff --git a/frontend-js/src/test/js/ServerConnector-test.js b/frontend-js/src/test/js/ServerConnector-test.js index 730bca8fa4bf409b466d4fc8e62d3f2e90c18eac..baefb69ed89c1356ce5f0ece3394e245a4fce6ed 100644 --- a/frontend-js/src/test/js/ServerConnector-test.js +++ b/frontend-js/src/test/js/ServerConnector-test.js @@ -160,6 +160,12 @@ describe('ServerConnector', function() { }); }); + it('removeComment', function() { + return ServerConnector.removeComment({ + commentId : 4290, + }); + }); + it('updateOverlay', function() { return ServerConnector.updateOverlay({ overlayId : 17296, diff --git a/frontend-js/testFiles/apiCalls/projects/sample/comments/4290/DELETE_token=MOCK_TOKEN_ID& b/frontend-js/testFiles/apiCalls/projects/sample/comments/4290/DELETE_token=MOCK_TOKEN_ID& new file mode 100644 index 0000000000000000000000000000000000000000..9e26dfeeb6e641a33dae4961196235bdb965b21b --- /dev/null +++ b/frontend-js/testFiles/apiCalls/projects/sample/comments/4290/DELETE_token=MOCK_TOKEN_ID& @@ -0,0 +1 @@ +{} \ No newline at end of file