diff --git a/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js b/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js index 9e36a932421fd08f58c43cdde88120d1429cb6bb..98d5ba3fc383827c6852350806375f46312423ac 100644 --- a/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js +++ b/frontend-js/src/main/js/gui/admin/CommentsAdminPanel.js @@ -123,29 +123,56 @@ CommentsAdminPanel.prototype.refreshProjects = function() { }); }; +CommentsAdminPanel.prototype.getSelectedProjectId = function() { + var projectSelect = $("[name='projectSelect']", this.getElement())[0]; + return projectSelect.value; +}; + CommentsAdminPanel.prototype.onProjectChange = function() { var self = this; - var projectSelect = $("[name='projectSelect']", self.getElement())[0]; + return ServerConnector.getComments({ - projectId : projectSelect.value, - }).then( - function(comments) { - var dataTable = $($("[name='commentsTable']", self.getElement())[0]).DataTable(); - var data = []; - var toYesNo = function(val) { - if (val) { - return "YES"; - } else { - return "NO"; - } - } - for (var i = 0; i < comments.length; i++) { - var comment = comments[i]; - data.push([ comment.getId(), comment.getTitle(), comment.getAuthor(), comment.getEmail(), - comment.getContent(), toYesNo(comment.isRemoved()), toYesNo(comment.isPinned()) ]); - logger.debug("Add comment: ", comments[i]); - } - dataTable.clear().rows.add(data).draw(); - }); + projectId : self.getSelectedProjectId(), + }).then(function(comments) { + var dataTable = $($("[name='commentsTable']", self.getElement())[0]).DataTable(); + var data = []; + for (var i = 0; i < comments.length; i++) { + data.push(self.commentToTableRow(comments[i])); + } + dataTable.clear().rows.add(data).draw(); + }); }; + +CommentsAdminPanel.prototype.commentToTableRow = function(comment) { + var self = this; + var projectId = self.getSelectedProjectId(); + var toYesNo = function(val) { + if (val) { + return "YES"; + } else { + return "NO"; + } + }; + var title = null; + if (!comment.isRemoved()) { + var commentLink = "index.xhtml?id=" + projectId + // + "&x=" + comment.getCoordinates().x + // + "&y=" + comment.getCoordinates().y + // + "&zoom=12" + // + "&comments=on"; + title = "<a href='" + commentLink + "' target='" + projectId + "'>" + comment.getTitle() + "</a>"; + } else { + title = comment.getTitle(); + } + + var row = [ comment.getId(), // + title, // + comment.getAuthor(), // + comment.getEmail(), // + comment.getContent(), // + toYesNo(comment.isRemoved()), // + toYesNo(comment.isPinned()) ]; + return row; +} + module.exports = CommentsAdminPanel;