webby grid row context menu initial pieces user/berick/webby-grid-row-context-menu
authorBill Erickson <berickxx@gmail.com>
Fri, 12 Dec 2014 15:42:18 +0000 (10:42 -0500)
committerBill Erickson <berickxx@gmail.com>
Fri, 12 Dec 2014 15:42:18 +0000 (10:42 -0500)
Beware: this kills the browser context menu and just logs for now.  No
menu is displayed

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Open-ILS/src/templates/staff/share/t_autogrid.tt2
Open-ILS/web/js/ui/default/staff/services/grid.js
Open-ILS/web/js/ui/default/staff/services/ui.js

index c786293..743e3d4 100644 (file)
     <div class="eg-grid-cell"
         eg-grid-column-drag-dest
         column="{{col.name}}"
-        eg-right-click="onContextMenu($event)"
         ng-repeat="col in columns"
         style="flex:{{col.flex}}"
         ng-show="col.visible">
           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">
 
index 2dca409..aa302dd 100644 (file)
@@ -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() {
index c960ffb..70bd17b 100644 (file)
@@ -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});
+            });
+        });
+    };
+});