From d4f60977fd4f56149a895c597fbae6f539c89bd4 Mon Sep 17 00:00:00 2001 From: James Allen Date: Mon, 16 Jan 2017 15:25:10 +0100 Subject: [PATCH] Add loading indicator while submitting new comments --- .../web/app/views/project/editor/review-panel.jade | 2 ++ .../controllers/ReviewPanelController.coffee | 13 +++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/review-panel.jade b/services/web/app/views/project/editor/review-panel.jade index 7fe12a4c2b..0efd5add10 100644 --- a/services/web/app/views/project/editor/review-panel.jade +++ b/services/web/app/views/project/editor/review-panel.jade @@ -185,6 +185,8 @@ script(type='text/ng-template', id='commentEntryTemplate') | {{ comment.content }} .rp-entry-metadata | {{ comment.timestamp | date : 'MMM d, y h:mm a' }} + .rp-loading(ng-if="threads[entry.thread_id].submitting") + i.fa.fa-spinner.fa-spin .rp-comment-reply(ng-if="permissions.comment") textarea.rp-comment-input( ng-model="entry.replyContent" 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 cdb66c52b9..4c65208ad9 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -44,8 +44,9 @@ define [ $scope.reviewPanelEventsBridge = new EventEmitter() ide.socket.on "new-comment", (thread_id, comment) -> - $scope.reviewPanel.commentThreads[thread_id] ?= { messages: [] } - $scope.reviewPanel.commentThreads[thread_id].messages.push(formatComment(comment)) + thread = getThread(thread_id) + delete thread.submitting + thread.messages.push(formatComment(comment)) $scope.$apply() $timeout () -> $scope.$broadcast "review-panel:layout" @@ -73,6 +74,10 @@ define [ getDocResolvedComments = (doc_id) -> $scope.reviewPanel.resolvedComments[doc_id] ?= {} return $scope.reviewPanel.resolvedComments[doc_id] + + getThread = (thread_id) -> + $scope.reviewPanel.commentThreads[thread_id] ?= { messages: [] } + return $scope.reviewPanel.commentThreads[thread_id] getChangeTracker = (doc_id) -> if !rangesTrackers[doc_id]? @@ -274,6 +279,8 @@ define [ $scope.submitNewComment = (content) -> thread_id = RangesTracker.generateId() + thread = getThread(thread_id) + thread.submitting = true $scope.$broadcast "comment:add", thread_id $http.post("/project/#{$scope.project_id}/thread/#{thread_id}/messages", {content, _csrf: window.csrfToken}) .error (error) -> @@ -297,6 +304,8 @@ define [ .error (error) -> ide.showGenericMessageModal("Error submitting comment", "Sorry, there was a problem submitting your comment") + thread = getThread(thread_id) + thread.submitting = true entry.replyContent = "" entry.replying = false $timeout () ->