From 6d7f4e9e6aaee2a00e892ced5c9dfe762ef355bd Mon Sep 17 00:00:00 2001 From: James Allen Date: Wed, 9 Nov 2016 15:25:41 +0000 Subject: [PATCH] Add basic comment replying --- .../web/app/views/project/editor/editor.jade | 16 ++++++++++---- .../track-changes/TrackChangesManager.coffee | 15 +++++++------ .../controllers/ReviewPanelController.coffee | 21 +++++++++++++++---- 3 files changed, 38 insertions(+), 14 deletions(-) diff --git a/services/web/app/views/project/editor/editor.jade b/services/web/app/views/project/editor/editor.jade index 93dde49188..a47920fa0e 100644 --- a/services/web/app/views/project/editor/editor.jade +++ b/services/web/app/views/project/editor/editor.jade @@ -51,15 +51,23 @@ div.full-size( .review-panel-scroller .review-entry-list(review-panel-sorted) .review-entry(ng-repeat="(entry_id, entry) in reviewPanel.entries", ng-style="{'top': top}") - div(ng-if="entry.type != 'focus-position'") + div(ng-if="entry.type == 'change'") div.small {{ entry.metadata.ts }} {{ entry.content }} + div(ng-if="entry.type == 'comment'") + div(ng-repeat="comment in entry.thread", class="comment-thread__comment") + div.small {{ comment.ts }} + div.small {{ comment.user_id }} + {{ comment.content }} + div(ng-if="entry.replying") + textarea(ng-model="entry.replyContent") + a.btn.btn-sm.btn-primary(href, ng-click="submitReply(entry)") Submit + a.btn.btn-sm.btn-primary(href, ng-click="startReply(entry)", ng-if="!entry.replying") Reply div(ng-if="entry.type == 'focus-position'") - - a.btn.btn-sm(href, ng-if="!commentState.adding", ng-click="startAddingComment()") Add comment + a.btn.btn-sm(href, ng-if="!commentState.adding", ng-click="startNewComment()") Add comment div(ng-if="commentState.adding") textarea(ng-model="commentState.content") - a.btn.btn-sm.btm-primary(href, ng-click="submitComment()") Submit + a.btn.btn-sm.btn-primary(href, ng-click="submitNewComment()") Submit .ui-layout-east div(ng-if="ui.pdfLayout == 'sideBySide'") diff --git a/services/web/public/coffee/ide/editor/directives/aceEditor/track-changes/TrackChangesManager.coffee b/services/web/public/coffee/ide/editor/directives/aceEditor/track-changes/TrackChangesManager.coffee index 53a80810d7..a1d95554ff 100644 --- a/services/web/public/coffee/ide/editor/directives/aceEditor/track-changes/TrackChangesManager.coffee +++ b/services/web/public/coffee/ide/editor/directives/aceEditor/track-changes/TrackChangesManager.coffee @@ -89,18 +89,21 @@ define [ turn_off_tracking: () -> @changesTracker.track_changes = false - addComment: (offset, length, comment) -> + addComment: (offset, length, content) -> @changesTracker.addComment offset, length, { - comment: comment - user_id: window.user_id + thread: [{ + content: content + user_id: window.user_id + ts: new Date() + }] } - addCommentToSelection: (comment) -> + addCommentToSelection: (content) -> range = @editor.getSelectionRange() offset = @_aceRangeToShareJs(range.start) end = @_aceRangeToShareJs(range.end) length = end - offset - @addComment(offset, length, comment) + @addComment(offset, length, content) selectLineIfNoSelection: () -> if @editor.selection.isEmpty() @@ -163,7 +166,7 @@ define [ for comment in @changesTracker.comments @$scope.reviewPanel.entries[comment.id] = { type: "comment" - content: comment.metadata.comment + thread: comment.metadata.thread offset: comment.offset } @updateFocus() diff --git a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee index 1eac287f6a..411367b5f8 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -60,11 +60,24 @@ define [ scroller.scrollTop(scroller.scrollTop() + deltaY * 4) e.preventDefault() - $scope.startAddingComment = () -> + $scope.startNewComment = () -> $scope.commentState.adding = true $scope.$broadcast "comment:select_line" - $scope.submitComment = () -> + $scope.submitNewComment = () -> $scope.commentState.adding = false - console.log "ADDING COMMENT", $scope.commentState.content - $scope.$broadcast "comment:add", $scope.commentState.content \ No newline at end of file + $scope.$broadcast "comment:add", $scope.commentState.content + $scope.commentState.content = "" + + $scope.startReply = (entry) -> + console.log "Start new reply" + entry.replying = true + + $scope.submitReply = (entry) -> + entry.thread.push { + content: entry.replyContent + ts: new Date() + user_id: window.user_id + } + entry.replyContent = "" + entry.replying = false \ No newline at end of file