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

Allow shift-click to select multiple versions

James Allen 12 лет назад
Родитель
Сommit
a8ca388146

+ 11 - 1
services/web/public/coffee/track-changes/ChangeListView.coffee

@@ -39,7 +39,10 @@ define [
 			view.$el.insertBefore(elementAtIndex)
 			view.$el.insertBefore(elementAtIndex)
 
 
 			view.on "click", (e, v) =>
 			view.on "click", (e, v) =>
-				@setSelectionRange(index, index)
+				if e.shiftKey
+					@selectRangeTo(index)
+				else
+					@setSelectionRange(index, index)
 
 
 			view.on "selected:to", (e, v) =>
 			view.on "selected:to", (e, v) =>
 				@setSelectionRange(@selectedFromIndex, index)
 				@setSelectionRange(@selectedFromIndex, index)
@@ -74,6 +77,13 @@ define [
 			@resetAllSelectors()
 			@resetAllSelectors()
 			@triggerChangeDiff()
 			@triggerChangeDiff()
 
 
+		selectRangeTo: (index) ->
+			return unless @selectedFromIndex? and @selectedToIndex?
+			if index < @selectedToIndex
+				@setSelectionRange(@selectedFromIndex, index)
+			else
+				@setSelectionRange(index, @selectedToIndex)
+
 		resetAllSelectors: () ->
 		resetAllSelectors: () ->
 			for view, i in @itemViews
 			for view, i in @itemViews
 				view.resetSelector(i, @selectedFromIndex, @selectedToIndex)
 				view.resetSelector(i, @selectedFromIndex, @selectedToIndex)

+ 4 - 0
services/web/public/stylesheets/less/trackchanges.less

@@ -96,6 +96,10 @@
 			position: relative;
 			position: relative;
 			border-bottom: 1px solid #ccc;
 			border-bottom: 1px solid #ccc;
 			cursor: pointer;
 			cursor: pointer;
+			user-select: none;
+			-ms-user-select: none;
+			-moz-user-select: none;
+			-webkit-user-select: none;
 			.change-selectors {
 			.change-selectors {
 				.change-selector-from {
 				.change-selector-from {
 					position: absolute;
 					position: absolute;