webstaff: Expose columns through grid controls for external column pickers
authorMike Rylander <mrylander@gmail.com>
Fri, 21 Aug 2015 17:10:41 +0000 (13:10 -0400)
committerJason Stephenson <jstephenson@mvlc.org>
Mon, 14 Sep 2015 19:44:16 +0000 (15:44 -0400)
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Open-ILS/web/js/ui/default/staff/services/grid.js

index b7c1ce3..fbbdb46 100644 (file)
@@ -218,6 +218,18 @@ angular.module('egGridMod',
                 // them up even if the caller doesn't request them.
                 var controls = $scope.gridControls || {};
 
+                controls.columnMap = function() {
+                    var m = {};
+                    angular.forEach(grid.columnsProvider.columns, function (c) {
+                        m[c.name] = c;
+                    });
+                    return m;
+                }
+
+                controls.columnsProvider = function() {
+                    return grid.columnsProvider;
+                }
+
                 // link in the control functions
                 controls.selectedItems = function() {
                     return grid.getSelectedItems()
@@ -287,6 +299,10 @@ angular.module('egGridMod',
                     return grid.offset;
                 }
 
+                controls.saveConfig = function () {
+                    return $scope.saveConfig();
+                }
+
                 grid.dataProvider.refresh = controls.refresh;
                 grid.controls = controls;
             }
@@ -399,6 +415,7 @@ angular.module('egGridMod',
                 });
             }
 
+
             // load the columns configuration (position, sort, width) from
             // eg.grid.<persist-key> and apply the loaded settings to the
             // columns on our columnsProvider
@@ -444,6 +461,7 @@ angular.module('egGridMod',
 
                     grid.columnsProvider.columns = new_cols;
                     grid.compileSort();
+
                 });
             }