From 536e5e8cd2a4c753c2a13e001d9d906fe57022a9 Mon Sep 17 00:00:00 2001 From: "a. bellenir" Date: Tue, 7 Aug 2018 18:18:41 -0400 Subject: [PATCH] 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 --- Open-ILS/web/js/ui/default/staff/services/grid.js | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) 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'); -- 2.11.0