From a639f13cb624c799d8c70964d8ded5dc66406a38 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Thu, 16 Feb 2017 15:48:58 +0000 Subject: [PATCH 01/14] Bootstrap collapsing behavior in files list. Store state. --- .../app/views/project/editor/review-panel.pug | 53 +++++++++++-------- .../controllers/ReviewPanelController.coffee | 3 ++ .../stylesheets/app/editor/review-panel.less | 10 ++++ 3 files changed, 43 insertions(+), 23 deletions(-) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 72e6640cdb..37490227df 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -92,32 +92,39 @@ ) .rp-overview-file-header( ng-if="reviewPanel.entries[doc.doc.id] | notEmpty" + ng-click="reviewPanel.overview.docsCollapsedState[doc.doc.id] = ! reviewPanel.overview.docsCollapsedState[doc.doc.id]" ) | {{ doc.path }} - .rp-entry-wrapper( - ng-repeat="(entry_id, entry) in reviewPanel.entries[doc.doc.id] | orderOverviewEntries" - ng-if="!(entry.type === 'comment' && reviewPanel.commentThreads[entry.thread_id].resolved === true)" - ) - div(ng-if="entry.type === 'insert' || entry.type === 'delete'") - change-entry( - entry="entry" - user="users[entry.metadata.user_id]" - on-indicator-click="toggleReviewPanel();" - ng-click="gotoEntry(doc.doc.id, entry)" - permissions="permissions" - ) + span.rp-overview-file-header-collapse( + ng-class="{ 'rp-overview-file-header-collapse-on': reviewPanel.overview.docsCollapsedState[doc.doc.id] }" + ) + i.fa.fa-angle-down - div(ng-if="entry.type === 'comment'") - comment-entry( - entry="entry" - threads="reviewPanel.commentThreads" - on-reply="submitReply(entry, entry_id);" - on-save-edit="saveEdit(entry.thread_id, comment)" - on-delete="deleteComment(entry.thread_id, comment)" - on-indicator-click="toggleReviewPanel();" - ng-click="gotoEntry(doc.doc.id, entry)" - permissions="permissions" - ) + .rp-overview-file-entries(ng-class="{ 'rp-overview-file-entries-collapsed' : reviewPanel.overview.docsCollapsedState[doc.doc.id] }") + .rp-entry-wrapper( + ng-repeat="(entry_id, entry) in reviewPanel.entries[doc.doc.id] | orderOverviewEntries" + ng-if="!(entry.type === 'comment' && reviewPanel.commentThreads[entry.thread_id].resolved === true)" + ) + div(ng-if="entry.type === 'insert' || entry.type === 'delete'") + change-entry( + entry="entry" + user="users[entry.metadata.user_id]" + on-indicator-click="toggleReviewPanel();" + ng-click="gotoEntry(doc.doc.id, entry)" + permissions="permissions" + ) + + div(ng-if="entry.type === 'comment'") + comment-entry( + entry="entry" + threads="reviewPanel.commentThreads" + on-reply="submitReply(entry, entry_id);" + on-save-edit="saveEdit(entry.thread_id, comment)" + on-delete="deleteComment(entry.thread_id, comment)" + on-indicator-click="toggleReviewPanel();" + ng-click="gotoEntry(doc.doc.id, entry)" + permissions="permissions" + ) .rp-nav a.rp-nav-item( 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 88a3233934..07f429036f 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -19,6 +19,7 @@ define [ openSubView: $scope.SubViews.CUR_FILE overview: loading: false + docsCollapsedState: {} dropdown: loading: false commentThreads: {} @@ -171,6 +172,8 @@ define [ $http.get "/project/#{$scope.project_id}/ranges" .success (docs) -> for doc in docs + if !$scope.reviewPanel.overview.docsCollapsedState[doc.id]? + $scope.reviewPanel.overview.docsCollapsedState[doc.id] = false if doc.id != $scope.editor.open_doc_id # this is kept up to date in real-time, don't overwrite rangesTracker = getChangeTracker(doc.id) rangesTracker.comments = doc.ranges?.comments or [] diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index 1d1900c90c..394468a026 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -567,7 +567,17 @@ margin-top: 10px; font-weight: @rp-semibold-weight; text-align: center; + cursor: pointer; } + .rp-overview-file-header-collapse { + display: inline-block; + float: right; + transform: rotateZ(0deg); + transition: transform 0.15s ease + } + .rp-overview-file-header-collapse-on { + transform: rotateZ(180deg); + } .rp-comment-wrapper { transition: .35s opacity ease-out .2s; From 0841ab82789cd447863b2be3341ef31f3a433d44 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 17 Feb 2017 11:24:21 +0000 Subject: [PATCH 02/14] Add directive to collapse elements via height. --- services/web/app/views/project/editor/review-panel.pug | 4 +++- .../coffee/ide/review-panel/ReviewPanelManager.coffee | 1 + .../web/public/stylesheets/app/editor/review-panel.less | 6 ++++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 37490227df..5b12eff9de 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -100,7 +100,9 @@ ) i.fa.fa-angle-down - .rp-overview-file-entries(ng-class="{ 'rp-overview-file-entries-collapsed' : reviewPanel.overview.docsCollapsedState[doc.doc.id] }") + .rp-overview-file-entries( + review-panel-collapse-height="reviewPanel.overview.docsCollapsedState[doc.doc.id]" + ) .rp-entry-wrapper( ng-repeat="(entry_id, entry) in reviewPanel.entries[doc.doc.id] | orderOverviewEntries" ng-if="!(entry.type === 'comment' && reviewPanel.commentThreads[entry.thread_id].resolved === true)" diff --git a/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee b/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee index 1565d6db73..4e0b70768c 100644 --- a/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee +++ b/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee @@ -8,6 +8,7 @@ define [ "ide/review-panel/directives/addCommentEntry" "ide/review-panel/directives/resolvedCommentEntry" "ide/review-panel/directives/resolvedCommentsDropdown" + "ide/review-panel/directives/reviewPanelCollapseHeight" "ide/review-panel/filters/notEmpty" "ide/review-panel/filters/orderOverviewEntries" ], () -> \ No newline at end of file diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index 394468a026..62f3a0e16b 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -575,10 +575,16 @@ transform: rotateZ(0deg); transition: transform 0.15s ease } + .rp-overview-file-header-collapse-on { transform: rotateZ(180deg); } + .rp-overview-file-entries { + overflow: hidden; + transition: height .15s; + } + .rp-comment-wrapper { transition: .35s opacity ease-out .2s; From 71cfc863b589d3b0c7859a5b2046168829fae125 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 17 Feb 2017 11:24:50 +0000 Subject: [PATCH 03/14] Avoid blank screen bug, when triggered by very large comments. --- services/web/public/stylesheets/app/editor/review-panel.less | 2 ++ 1 file changed, 2 insertions(+) diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index 62f3a0e16b..83c9d48514 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -158,6 +158,8 @@ position: absolute; top: 0; bottom: 0; + padding-bottom: 52px; + overflow: hidden; } .rp-state-overview & { From cd2c8e71995ccc63e458ea53af1def8321c6122a Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 17 Feb 2017 11:54:33 +0000 Subject: [PATCH 04/14] Add directive based on jQuery animation API. --- .../directives/reviewPanelCollapseHeight.coffee | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee diff --git a/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee b/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee new file mode 100644 index 0000000000..859e04aac7 --- /dev/null +++ b/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee @@ -0,0 +1,15 @@ +define [ + "base" +], (App) -> + App.directive "reviewPanelCollapseHeight", ($parse) -> + return { + restrict: "A", + link: (scope, element, attrs) -> + scope.$watch (() -> $parse(attrs.reviewPanelCollapseHeight)(scope)), (shouldCollapse) -> + neededHeight = element.prop("scrollHeight") + if neededHeight > 0 + if shouldCollapse + element.animate { height: 0 }, 150 + else + element.animate { height: neededHeight }, 150 + } \ No newline at end of file From 1f92a494e7c0f45b305c78c70408ad4a8bb2ac29 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 17 Feb 2017 11:55:20 +0000 Subject: [PATCH 05/14] Remove unneeded CSS animation. --- services/web/app/views/project/editor/review-panel.pug | 2 +- services/web/public/stylesheets/app/editor/review-panel.less | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 5b12eff9de..3a69f0c759 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -98,7 +98,7 @@ span.rp-overview-file-header-collapse( ng-class="{ 'rp-overview-file-header-collapse-on': reviewPanel.overview.docsCollapsedState[doc.doc.id] }" ) - i.fa.fa-angle-down + i.fa.fa-angle-up .rp-overview-file-entries( review-panel-collapse-height="reviewPanel.overview.docsCollapsedState[doc.doc.id]" diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index 83c9d48514..3cf61f4d50 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -584,7 +584,6 @@ .rp-overview-file-entries { overflow: hidden; - transition: height .15s; } .rp-comment-wrapper { From 1e66c46ca782b4141e18459eb4b325f758b3889e Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 17 Feb 2017 14:31:50 +0000 Subject: [PATCH 06/14] Add filter to retrieve number of keys in objects. --- .../public/coffee/ide/review-panel/ReviewPanelManager.coffee | 1 + .../public/coffee/ide/review-panel/filters/numKeys.coffee | 5 +++++ 2 files changed, 6 insertions(+) create mode 100644 services/web/public/coffee/ide/review-panel/filters/numKeys.coffee diff --git a/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee b/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee index 4e0b70768c..9b622ffa05 100644 --- a/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee +++ b/services/web/public/coffee/ide/review-panel/ReviewPanelManager.coffee @@ -10,5 +10,6 @@ define [ "ide/review-panel/directives/resolvedCommentsDropdown" "ide/review-panel/directives/reviewPanelCollapseHeight" "ide/review-panel/filters/notEmpty" + "ide/review-panel/filters/numKeys" "ide/review-panel/filters/orderOverviewEntries" ], () -> \ No newline at end of file diff --git a/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee b/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee new file mode 100644 index 0000000000..4a37638c1e --- /dev/null +++ b/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee @@ -0,0 +1,5 @@ +define [ + "base" +], (App) -> + app.filter "numKeys", () -> + (object) -> Object.keys(object).length From 121b783b4ac42660ae1f89b36fcb4b027ce397f7 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Fri, 17 Feb 2017 14:32:06 +0000 Subject: [PATCH 07/14] Show number of entries per file, when collapsed. --- services/web/app/views/project/editor/review-panel.pug | 3 +++ services/web/public/stylesheets/app/editor/review-panel.less | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 3a69f0c759..16126dc03f 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -95,6 +95,9 @@ ng-click="reviewPanel.overview.docsCollapsedState[doc.doc.id] = ! reviewPanel.overview.docsCollapsedState[doc.doc.id]" ) | {{ doc.path }} + span.rp-overview-file-num-entries( + ng-show="reviewPanel.overview.docsCollapsedState[doc.doc.id]" + )  ({{ reviewPanel.entries[doc.doc.id] | numKeys }}) span.rp-overview-file-header-collapse( ng-class="{ 'rp-overview-file-header-collapse-on': reviewPanel.overview.docsCollapsedState[doc.doc.id] }" ) diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index 3cf61f4d50..52e217a71d 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -571,6 +571,11 @@ text-align: center; cursor: pointer; } + + .rp-overview-file-num-entries { + font-weight: normal; + font-size: 0.9em; + } .rp-overview-file-header-collapse { display: inline-block; float: right; From 0b7863185c81cf887771ba015383fe8be7547677 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 21 Feb 2017 11:05:55 +0000 Subject: [PATCH 08/14] Make expand/collapse indicator consistent with the one used in filetree. --- services/web/app/views/project/editor/review-panel.pug | 8 ++++---- .../web/public/stylesheets/app/editor/review-panel.less | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 16126dc03f..75b1b426c4 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -94,14 +94,14 @@ ng-if="reviewPanel.entries[doc.doc.id] | notEmpty" ng-click="reviewPanel.overview.docsCollapsedState[doc.doc.id] = ! reviewPanel.overview.docsCollapsedState[doc.doc.id]" ) + span.rp-overview-file-header-collapse( + ng-class="{ 'rp-overview-file-header-collapse-on': reviewPanel.overview.docsCollapsedState[doc.doc.id] }" + ) + i.fa.fa-angle-right | {{ doc.path }} span.rp-overview-file-num-entries( ng-show="reviewPanel.overview.docsCollapsedState[doc.doc.id]" )  ({{ reviewPanel.entries[doc.doc.id] | numKeys }}) - span.rp-overview-file-header-collapse( - ng-class="{ 'rp-overview-file-header-collapse-on': reviewPanel.overview.docsCollapsedState[doc.doc.id] }" - ) - i.fa.fa-angle-up .rp-overview-file-entries( review-panel-collapse-height="reviewPanel.overview.docsCollapsedState[doc.doc.id]" diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index 52e217a71d..e3f37bfc95 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -578,13 +578,13 @@ } .rp-overview-file-header-collapse { display: inline-block; - float: right; + float: left; transform: rotateZ(0deg); transition: transform 0.15s ease } .rp-overview-file-header-collapse-on { - transform: rotateZ(180deg); + transform: rotateZ(90deg); } .rp-overview-file-entries { From 53a127cc65ae35f4f7a2af858215814fa90d7767 Mon Sep 17 00:00:00 2001 From: James Allen Date: Tue, 21 Feb 2017 14:25:26 +0100 Subject: [PATCH 09/14] Make consistent with file tree --- services/web/app/views/project/editor/review-panel.pug | 2 +- services/web/public/stylesheets/app/editor/review-panel.less | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 75b1b426c4..afa5b4244e 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -97,7 +97,7 @@ span.rp-overview-file-header-collapse( ng-class="{ 'rp-overview-file-header-collapse-on': reviewPanel.overview.docsCollapsedState[doc.doc.id] }" ) - i.fa.fa-angle-right + i.fa.fa-angle-down | {{ doc.path }} span.rp-overview-file-num-entries( ng-show="reviewPanel.overview.docsCollapsedState[doc.doc.id]" diff --git a/services/web/public/stylesheets/app/editor/review-panel.less b/services/web/public/stylesheets/app/editor/review-panel.less index e3f37bfc95..5b422cbd0a 100644 --- a/services/web/public/stylesheets/app/editor/review-panel.less +++ b/services/web/public/stylesheets/app/editor/review-panel.less @@ -584,7 +584,7 @@ } .rp-overview-file-header-collapse-on { - transform: rotateZ(90deg); + transform: rotateZ(-90deg); } .rp-overview-file-entries { From 33c8bc8684b22ff421ac5af0e62512fc96941f8d Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 21 Feb 2017 14:20:51 +0000 Subject: [PATCH 10/14] Support saving state to local storage. --- .../controllers/ReviewPanelController.coffee | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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 07f429036f..7faf5d7243 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -4,7 +4,7 @@ define [ "ide/colors/ColorManager" "ide/review-panel/RangesTracker" ], (App, EventEmitter, ColorManager, RangesTracker) -> - App.controller "ReviewPanelController", ($scope, $element, ide, $timeout, $http, $modal, event_tracking) -> + App.controller "ReviewPanelController", ($scope, $element, ide, $timeout, $http, $modal, event_tracking, localStorage) -> $reviewPanelEl = $element.find "#review-panel" $scope.SubViews = @@ -28,6 +28,16 @@ define [ rendererData: {} loadingThreads: false + $scope.$on "project:joined", () -> + $scope.reviewPanel.overview.docsCollapsedState = JSON.parse(localStorage("docs_collapsed_state:#{$scope.project_id}")) or {} + + window.addEventListener "beforeunload", () -> + collapsedStates = {} + for doc, state of $scope.reviewPanel.overview.docsCollapsedState + collapsedStates[doc] = state if state is true + valToStore = if Object.keys(collapsedStates).length > 0 then JSON.stringify(collapsedStates) else null + localStorage("docs_collapsed_state:#{$scope.project_id}", valToStore) + $scope.$on "layout:pdf:linked", (event, state) -> $scope.reviewPanel.layoutToLeft = (state.east?.size < 220 || state.east?.initClosed) $scope.$broadcast "review-panel:layout" From 2e8f9173183a06879ec3465938450729f3cc872e Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 21 Feb 2017 14:27:57 +0000 Subject: [PATCH 11/14] Support initial closed state. --- .../review-panel/directives/reviewPanelCollapseHeight.coffee | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee b/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee index 859e04aac7..aef8a91a3b 100644 --- a/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee +++ b/services/web/public/coffee/ide/review-panel/directives/reviewPanelCollapseHeight.coffee @@ -12,4 +12,7 @@ define [ element.animate { height: 0 }, 150 else element.animate { height: neededHeight }, 150 + else + if shouldCollapse + element.height 0 } \ No newline at end of file From 7f6941677d32523d4ad1d93a1044945c097f21e0 Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 21 Feb 2017 14:43:05 +0000 Subject: [PATCH 12/14] Check local storage on load; use explicit condition syntax. --- .../review-panel/controllers/ReviewPanelController.coffee | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) 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 d740eb02e3..5067799571 100644 --- a/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee +++ b/services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee @@ -19,7 +19,7 @@ define [ openSubView: $scope.SubViews.CUR_FILE overview: loading: false - docsCollapsedState: {} + docsCollapsedState: JSON.parse(localStorage("docs_collapsed_state:#{$scope.project_id}")) or {} dropdown: loading: false commentThreads: {} @@ -28,13 +28,11 @@ define [ rendererData: {} loadingThreads: false - $scope.$on "project:joined", () -> - $scope.reviewPanel.overview.docsCollapsedState = JSON.parse(localStorage("docs_collapsed_state:#{$scope.project_id}")) or {} - window.addEventListener "beforeunload", () -> collapsedStates = {} for doc, state of $scope.reviewPanel.overview.docsCollapsedState - collapsedStates[doc] = state if state is true + if state + collapsedStates[doc] = state valToStore = if Object.keys(collapsedStates).length > 0 then JSON.stringify(collapsedStates) else null localStorage("docs_collapsed_state:#{$scope.project_id}", valToStore) From 96c44eec38538475a1cb17cd304f8ac751ba8b4b Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 21 Feb 2017 14:48:21 +0000 Subject: [PATCH 13/14] Support values other than objects in the numKeys filter, returning zero if so. --- .../public/coffee/ide/review-panel/filters/numKeys.coffee | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee b/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee index 4a37638c1e..c1822d02c9 100644 --- a/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee +++ b/services/web/public/coffee/ide/review-panel/filters/numKeys.coffee @@ -2,4 +2,8 @@ define [ "base" ], (App) -> app.filter "numKeys", () -> - (object) -> Object.keys(object).length + (object) -> + if object? + return Object.keys(object).length + else + return 0 From 519cd3c0bd24316cd279863e5d5c88c15abe483a Mon Sep 17 00:00:00 2001 From: Paulo Reis Date: Tue, 21 Feb 2017 15:20:00 +0000 Subject: [PATCH 14/14] Avoid showing files in overview if the associated review entries object is still undefined. --- services/web/app/views/project/editor/review-panel.pug | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/web/app/views/project/editor/review-panel.pug b/services/web/app/views/project/editor/review-panel.pug index 59ac7e5baf..8d19bf2ae4 100644 --- a/services/web/app/views/project/editor/review-panel.pug +++ b/services/web/app/views/project/editor/review-panel.pug @@ -93,7 +93,7 @@ ng-if="!reviewPanel.overview.loading" ) .rp-overview-file-header( - ng-if="reviewPanel.entries[doc.doc.id] | notEmpty" + ng-if="(reviewPanel.entries[doc.doc.id] != null) && (reviewPanel.entries[doc.doc.id] | notEmpty)" ng-click="reviewPanel.overview.docsCollapsedState[doc.doc.id] = ! reviewPanel.overview.docsCollapsedState[doc.doc.id]" ) span.rp-overview-file-header-collapse(