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

Count entries within selection; only show bulk actions if there are selected entries.

Paulo Reis 9 лет назад
Родитель
Сommit
3f441ff38c

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

@@ -86,6 +86,7 @@
 					bulk-actions-entry(
 					bulk-actions-entry(
 						on-bulk-accept="bulkAccept();"
 						on-bulk-accept="bulkAccept();"
 						on-bulk-reject="bulkAccept();"
 						on-bulk-reject="bulkAccept();"
+						n-entries="reviewPanel.nSelectedEntries"
 					)
 					)
 
 
 	.rp-entry-list(
 	.rp-entry-list(
@@ -359,7 +360,7 @@ script(type='text/ng-template', id='addCommentEntryTemplate')
 						|  #{translate("comment")}
 						|  #{translate("comment")}
 
 
 script(type='text/ng-template', id='bulkActionsEntryTemplate')
 script(type='text/ng-template', id='bulkActionsEntryTemplate')
-	div
+	div(ng-if="nEntries > 0")
 		.rp-entry-callout.rp-entry-callout-bulk-actions
 		.rp-entry-callout.rp-entry-callout-bulk-actions
 		.rp-entry.rp-entry-bulk-actions
 		.rp-entry.rp-entry-bulk-actions
 			a.rp-bulk-actions-btn(
 			a.rp-bulk-actions-btn(
@@ -368,12 +369,14 @@ script(type='text/ng-template', id='bulkActionsEntryTemplate')
 			) 
 			) 
 				i.fa.fa-times
 				i.fa.fa-times
 				|  #{translate("reject_all")}
 				|  #{translate("reject_all")}
+				| ({{ nEntries }})
 			a.rp-bulk-actions-btn(
 			a.rp-bulk-actions-btn(
 				href
 				href
 				ng-click="bulkAccept();"
 				ng-click="bulkAccept();"
 			) 
 			) 
 				i.fa.fa-check
 				i.fa.fa-check
 				|  #{translate("accept_all")}
 				|  #{translate("accept_all")}
+				| ({{ nEntries }})
 			
 			
 script(type='text/ng-template', id='resolvedCommentsDropdownTemplate')
 script(type='text/ng-template', id='resolvedCommentsDropdownTemplate')
 	.resolved-comments
 	.resolved-comments

+ 6 - 0
services/web/public/coffee/ide/review-panel/controllers/ReviewPanelController.coffee

@@ -26,6 +26,7 @@ define [
 			resolvedThreadIds: {}
 			resolvedThreadIds: {}
 			rendererData: {}
 			rendererData: {}
 			loadingThreads: false
 			loadingThreads: false
+			nSelectedEntries: 0
 
 
 		window.addEventListener "beforeunload", () ->
 		window.addEventListener "beforeunload", () ->
 			collapsedStates = {}
 			collapsedStates = {}
@@ -283,6 +284,7 @@ define [
 		$scope.$on "editor:focus:changed", (e, selection_offset_start, selection_offset_end, selection) ->
 		$scope.$on "editor:focus:changed", (e, selection_offset_start, selection_offset_end, selection) ->
 			doc_id = $scope.editor.open_doc_id
 			doc_id = $scope.editor.open_doc_id
 			entries = getDocEntries(doc_id)
 			entries = getDocEntries(doc_id)
+			$scope.reviewPanel.nSelectedEntries = 0
 
 
 			delete entries["add-comment"]
 			delete entries["add-comment"]
 			delete entries["bulk-actions"]
 			delete entries["bulk-actions"]
@@ -303,9 +305,13 @@ define [
 				if entry.type == "comment" and not $scope.reviewPanel.resolvedThreadIds[entry.thread_id]
 				if entry.type == "comment" and not $scope.reviewPanel.resolvedThreadIds[entry.thread_id]
 					entry.focused = (entry.offset <= selection_offset_start <= entry.offset + entry.content.length)
 					entry.focused = (entry.offset <= selection_offset_start <= entry.offset + entry.content.length)
 				else if entry.type == "insert"
 				else if entry.type == "insert"
+					isEntryWithinSelection = entry.offset >= selection_offset_start and entry.offset + entry.content.length <= selection_offset_end
 					entry.focused = (entry.offset <= selection_offset_start <= entry.offset + entry.content.length)
 					entry.focused = (entry.offset <= selection_offset_start <= entry.offset + entry.content.length)
+					$scope.reviewPanel.nSelectedEntries++ if isEntryWithinSelection
 				else if entry.type == "delete"
 				else if entry.type == "delete"
+					isEntryWithinSelection = selection_offset_start <= entry.offset >= selection_offset_start
 					entry.focused = (entry.offset == selection_offset_start)
 					entry.focused = (entry.offset == selection_offset_start)
+					$scope.reviewPanel.nSelectedEntries++ if isEntryWithinSelection
 				else if entry.type in [ "add-comment", "bulk-actions" ] and selection
 				else if entry.type in [ "add-comment", "bulk-actions" ] and selection
 					entry.focused = true
 					entry.focused = true
 			
 			

+ 1 - 0
services/web/public/coffee/ide/review-panel/directives/bulkActionsEntry.coffee

@@ -7,6 +7,7 @@ define [
 		scope: 
 		scope: 
 			onBulkAccept: "&"
 			onBulkAccept: "&"
 			onBulkReject: "&"
 			onBulkReject: "&"
+			nEntries: "="
 		link: (scope, element, attrs) ->
 		link: (scope, element, attrs) ->
 			scope.bulkAccept = () ->
 			scope.bulkAccept = () ->
 				scope.onBulkAccept()
 				scope.onBulkAccept()