Просмотр исходного кода

Merge pull request #8639 from overleaf/ae-loading-threads

[cm6] Improve interaction between review panel and CM6

GitOrigin-RevId: 2f15a4821d4edfb5ee00013c74c7ae35fa59559c
Alf Eaton 4 лет назад
Родитель
Сommit
78df903b69

+ 1 - 1
services/web/app/views/project/editor/editor-pane.pug

@@ -9,7 +9,7 @@
 			'rp-size-mini': ui.miniReviewPanelVisible,\
 			'rp-size-expanded': ui.reviewPanelOpen,\
 			'rp-layout-left': reviewPanel.layoutToLeft,\
-			'rp-loading-threads': reviewPanel.loadingThreads,\
+			'rp-loading-threads': loadingThreads,\
 		}"
 	)
 

+ 1 - 1
services/web/app/views/project/editor/review-panel.pug

@@ -159,7 +159,7 @@
 						on-delete="deleteComment(entry.thread_id, comment)"
 						on-body-click="gotoEntry(editor.open_doc_id, entry)"
 						permissions="permissions"
-						ng-if="!reviewPanel.loadingThreads"
+						ng-if="!loadingThreads"
 					)
 
 				div(ng-if="entry.type === 'add-comment' && permissions.comment")

+ 8 - 5
services/web/frontend/js/ide/review-panel/controllers/ReviewPanelController.js

@@ -96,7 +96,6 @@ export default App.controller(
       rendererData: {},
       formattedProjectMembers: {},
       fullTCStateCollapsed: true,
-      loadingThreads: false,
       // All selected changes. If a aggregated change (insertion + deletion) is selection, the two ids
       // will be present. The length of this array will differ from the count below (see explanation).
       selectedEntryIds: [],
@@ -106,6 +105,8 @@ export default App.controller(
       entryHover: false,
     }
 
+    ide.$scope.loadingThreads = true
+
     window.addEventListener('beforeunload', function () {
       const collapsedStates = {}
       for (const doc in $scope.reviewPanel.overview.docsCollapsedState) {
@@ -319,13 +320,15 @@ export default App.controller(
       })
     })
 
-    $scope.$watch('reviewPanel.subView', function (view) {
+    $scope.$watch('reviewPanel.subView', function (view, oldView) {
       if (view == null) {
         return
       }
       updateScrollbar()
       if (view === $scope.SubViews.OVERVIEW) {
         return refreshOverviewPanel()
+      } else if (oldView === $scope.SubViews.OVERVIEW) {
+        dispatchReviewPanelEvent('overview-closed', view)
       }
     })
 
@@ -1193,12 +1196,12 @@ export default App.controller(
         return
       }
       _threadsLoaded = true
-      $scope.reviewPanel.loadingThreads = true
+      ide.$scope.loadingThreads = true
       return $http
         .get(`/project/${$scope.project_id}/threads`)
         .then(function (response) {
           const threads = response.data
-          $scope.reviewPanel.loadingThreads = false
+          ide.$scope.loadingThreads = false
           for (const thread_id in $scope.reviewPanel.resolvedThreadIds) {
             const _ = $scope.reviewPanel.resolvedThreadIds[thread_id]
             delete $scope.reviewPanel.resolvedThreadIds[thread_id]
@@ -1212,10 +1215,10 @@ export default App.controller(
               thread.resolved_by_user = formatUser(thread.resolved_by_user)
               $scope.reviewPanel.resolvedThreadIds[thread_id] = true
               $scope.$broadcast('comment:resolve_threads', [thread_id])
-              dispatchReviewPanelEvent('comment:resolve_threads', [thread_id])
             }
           }
           $scope.reviewPanel.commentThreads = threads
+          dispatchReviewPanelEvent('loaded_threads')
           return $timeout(() => $scope.$broadcast('review-panel:layout'))
         })
     }