From 08f49769787ecad8308aebd69e75cdcb833ca8dc Mon Sep 17 00:00:00 2001 From: Andrew Benton Date: Thu, 4 Apr 2013 12:21:24 -0700 Subject: [PATCH] Allow keyboard nav in multiSelect grids Updated selectionProvider to allow the use of up/down arrow keys for navigation and selection in multi-selection grids. --- src/classes/selectionProvider.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/classes/selectionProvider.js b/src/classes/selectionProvider.js index 4b739d743a..11788c41e9 100644 --- a/src/classes/selectionProvider.js +++ b/src/classes/selectionProvider.js @@ -9,7 +9,10 @@ var ngSelectionProvider = function (grid, $scope, $parse) { // function to manage the selection action of a data item (entity) self.ChangeSelection = function (rowItem, evt) { // ctrl-click + shift-click multi-selections - if (evt && !evt.keyCode && !evt.ctrlKey && !evt.shiftKey) { + // up/down key navigation in multi-selections + var charCode = evt.which || evt.keyCode; + var isUpDownKeyPress = (charCode === 40 || charCode === 38); + if (evt && (!evt.keyCode || isUpDownKeyPress) && !evt.ctrlKey && !evt.shiftKey) { self.toggleSelectAll(false, true); } if (evt && evt.shiftKey && !evt.keyCode && self.multi && grid.config.enableRowSelection) { @@ -68,7 +71,7 @@ var ngSelectionProvider = function (grid, $scope, $parse) { } self.setSelection(rowItem, !rowItem.selected); } - } else if (!evt.keyCode) { + } else if (!evt.keyCode || isUpDownKeyPress) { self.setSelection(rowItem, !rowItem.selected); } self.lastClickedRow = rowItem;