From: a. bellenir Date: Tue, 7 Aug 2018 22:18:41 +0000 (-0400) Subject: LP#1785333: Right-click can clear grid selection X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=536e5e8cd2a4c753c2a13e001d9d906fe57022a9;p=evergreen%2Ftadl.git LP#1785333: Right-click can clear grid selection This commit uses egGrid's indexValue API to identify the clicked row rather than depending on grid row order when checking whether the that row is currently selected. This is a generalized fix for all grids. Signed-off-by: a. bellenir Signed-off-by: Mike Rylander --- diff --git a/Open-ILS/web/js/ui/default/staff/services/grid.js b/Open-ILS/web/js/ui/default/staff/services/grid.js index 4c2ff19d87..3f7aba30d4 100644 --- a/Open-ILS/web/js/ui/default/staff/services/grid.js +++ b/Open-ILS/web/js/ui/default/staff/services/grid.js @@ -681,23 +681,18 @@ angular.module('egGridMod', if (!$scope.menu_dom) $scope.menu_dom = $($scope.grid_element).find('.grid-action-dropdown')[0]; if (!$scope.action_context_parent) $scope.action_context_parent = $($scope.menu_dom).parent(); - // we need the index of the row that got right-clicked... + // we need the the row that got right-clicked... var e = $event.target; // the DOM element var s = undefined; // the angular scope for that element - while(e){ // searching for the row so we can get its index from s.$index + while(e){ // searching for the row // abort & use the browser default context menu for links (lp1669856): if(e.tagName.toLowerCase() === 'a' && e.href){ return true; } s = angular.element(e).scope(); if(s.hasOwnProperty('item')){ break; } e = e.parentElement; } - /* $scope.items and $scope.selected indexes are "backwards" to each other. - $scope.items counts down from the top of the list (most recent item first) - $scope.selected counts forward as items are scanned (most recent item last) - s.$index is for $scope.items. we need the index for $scope.selected: */ - var selectable_index = ($scope.items.length-1) - s.$index; // select the right-clicked row if it is not already selected (lp1776557): - if(!$scope.selected[selectable_index]){ $event.target.click(); } + if(!$scope.selected[grid.indexValue(s.item)]){ $event.target.click(); } if (!$scope.action_context_showing) { $scope.action_context_width = $($scope.menu_dom).css('width');