diff --git a/services/web/app/views/project/editor/editor-pane.pug b/services/web/app/views/project/editor/editor-pane.pug index 033103478f..e489a2cdb5 100644 --- a/services/web/app/views/project/editor/editor-pane.pug +++ b/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,\ }" ) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 7ad226593f..83e1f85ecd 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/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") diff --git a/services/web/frontend/js/ide/review-panel/controllers/ReviewPanelController.js b/services/web/frontend/js/ide/review-panel/controllers/ReviewPanelController.js index 3b4cf5e315..1d51cb20fc 100644 --- a/services/web/frontend/js/ide/review-panel/controllers/ReviewPanelController.js +++ b/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')) }) }