From: Bill Erickson Date: Fri, 12 Dec 2014 15:42:18 +0000 (-0500) Subject: webby grid row context menu initial pieces X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=refs%2Fheads%2Fuser%2Fberick%2Fwebby-grid-row-context-menu;p=working%2FEvergreen.git webby grid row context menu initial pieces Beware: this kills the browser context menu and just logs for now. No menu is displayed Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/templates/staff/share/t_autogrid.tt2 b/Open-ILS/src/templates/staff/share/t_autogrid.tt2 index c786293d78..743e3d415c 100644 --- a/Open-ILS/src/templates/staff/share/t_autogrid.tt2 +++ b/Open-ILS/src/templates/staff/share/t_autogrid.tt2 @@ -189,7 +189,6 @@
@@ -273,6 +272,7 @@ ng-click="handleRowClick($event, item)" ng-dblclick="gridControls.activateItem(item)" ng-repeat="col in columns" + eg-right-click="onContextMenu($event, item)" style="flex:{{col.flex}}" ng-show="col.visible"> 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 2dca40999a..aa302dde0a 100644 --- a/Open-ILS/web/js/ui/default/staff/services/grid.js +++ b/Open-ILS/web/js/ui/default/staff/services/grid.js @@ -365,9 +365,8 @@ angular.module('egGridMod', }); } - $scope.onContextMenu = function($event) { - var col = angular.element($event.target).attr('column'); - console.log('selected column ' + col); + $scope.onContextMenu = function($event, item) { + console.log('selected row ' + grid.indexValue(item)); } $scope.page = function() { diff --git a/Open-ILS/web/js/ui/default/staff/services/ui.js b/Open-ILS/web/js/ui/default/staff/services/ui.js index c960ffb6af..70bd17bfb2 100644 --- a/Open-ILS/web/js/ui/default/staff/services/ui.js +++ b/Open-ILS/web/js/ui/default/staff/services/ui.js @@ -295,3 +295,15 @@ It also allows us to abstract away some browser finickiness. }, }; }) + +.directive('egRightClick', function($parse) { + return function(scope, element, attrs) { + var fn = $parse(attrs.egRightClick); + element.bind('contextmenu', function(event) { + scope.$apply(function() { + event.preventDefault(); + fn(scope, {$event:event}); + }); + }); + }; +});