From: Bill Erickson Date: Fri, 2 May 2014 19:26:50 +0000 (-0400) Subject: misc fixes for patron search; local item storage X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=b34a0b7b640e4c9e01f19bab07496c079d8b4ba5;p=working%2FEvergreen.git misc fixes for patron search; local item storage Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/templates/staff/circ/patron/t_bcsearch.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_bcsearch.tt2 index 8396e23a4d..216b1862f0 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_bcsearch.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_bcsearch.tt2 @@ -11,12 +11,6 @@ id="patron-checkout-barcode" type="text"/> - - diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/app.js b/Open-ILS/web/js/ui/default/staff/circ/patron/app.js index 2fa5a190af..cc96749551 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/app.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/app.js @@ -322,10 +322,10 @@ function($scope , $location , egAuth , egNet , egEvent , egOrg , egConfirmDialog .controller('PatronSearchCtrl', ['$scope','$q','$routeParams','$timeout','$window','$location','egEnv', '$filter','egIDL','egNet','egAuth','egEvent','egUser', - 'patronSvc','egGridDataProvider','egPrintStore', + 'patronSvc','egGridDataProvider','egPrintStore','egOrg', function($scope, $q, $routeParams, $timeout, $window, $location, egEnv, $filter, egIDL, egNet, egAuth, egEvent, egUser, - patronSvc , egGridDataProvider , egPrintStore) { + patronSvc , egGridDataProvider , egPrintStore , egOrg) { $scope.initTab('search'); $scope.focusMe = true; @@ -422,7 +422,7 @@ function($scope, $q, $routeParams, $timeout, $window, $location, egEnv, fullSearch.count, fullSearch.sort, fullSearch.inactive, - fullSearch.home_ou, + fullSearch.home_ou || egOrg.tree().id(), egUser.defaultFleshFields, fullSearch.offset @@ -542,7 +542,7 @@ function($scope, $q, $routeParams, $timeout, $window, $location, egEnv, // refresh itself. $scope.search = function(args) { // args === $scope.searchArgs if (args && Object.keys(args).length) - provider.increment(); + provider.increment(true); } // TODO: move this into the (forthcoming) grid row activate action 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 0d86cdbed5..b20f52c0fa 100644 --- a/Open-ILS/web/js/ui/default/staff/services/grid.js +++ b/Open-ILS/web/js/ui/default/staff/services/grid.js @@ -153,18 +153,7 @@ angular.module('egGridMod', delete $scope.autoFields; } - if (grid.dataProvider) { - - // refresh the grid contents each time the data - // provider's revision changes - $scope.$watch( - function() { return grid.dataProvider.revision() }, - function(newVal, oldVal) { - if (newVal !== oldVal) grid.collect(); - } - ); - - } else { + if (!grid.dataProvider) { grid.selfManagedData = true; grid.dataProvider = egGridFlatDataProvider.instance({ @@ -177,13 +166,18 @@ angular.module('egGridMod', function() { return grid.dataProvider.query() }, function(newVal, oldVal) { if (newVal !== oldVal) - grid.collect() + grid.dataProvider.load(true); }, true // object comparison ); delete $scope.query; } + grid.dataProvider.load = function(reset) { + if (reset) grid.offset = 0; + grid.collect(); + } + $scope.itemFieldValue = grid.dataProvider.itemFieldValue; $scope.indexValue = function(item) { return grid.indexValue(item) @@ -837,7 +831,6 @@ angular.module('egGridMod', var gridData = this; gridData.sort = []; - gridData._revision = 0; gridData.query = args.query; gridData.idlClass = args.idlClass; gridData.columnsProvider = args.columnsProvider; @@ -863,14 +856,11 @@ angular.module('egGridMod', return {}; } - gridData.revision = function() { - return gridData._revision; - } - - // incrementing the revision tells the grid that a data - // refresh is needed. - gridData.increment = function() { - gridData._revision++; + // incrementing the provider informs the grid it's time to + // redraw itself. If reset is true, it resets the grid paging + // to page 0. + gridData.increment = function(reset) { + gridData.load(reset); } // returns a promise whose notify() delivers items diff --git a/Open-ILS/web/js/ui/default/staff/services/printstore.js b/Open-ILS/web/js/ui/default/staff/services/printstore.js index c07d49330c..c6545cdcce 100644 --- a/Open-ILS/web/js/ui/default/staff/services/printstore.js +++ b/Open-ILS/web/js/ui/default/staff/services/printstore.js @@ -355,16 +355,16 @@ angular.module('egCoreMod') } service.setItem = function(key, value) { - return service.setRemoteItem(key, value)['catch']( + var str = JSON.stringify(value); + return service.setRemoteItem(key, str)['catch']( function(msg) { - return service.setLocalItem(msg.key, msg.value); + return service.setLocalItem(msg.key, str); } ); } // set the value for a stored or new item service.setRemoteItem = function(key, value) { - value = JSON.stringify(value); // all values stored as JSON text return service.attemptHatchDelivery({ key : key, value : value, @@ -373,7 +373,7 @@ angular.module('egCoreMod') } service.setLocalItem = function(key, value) { - $window.localStorage.setItem(key, JSON.stringify(value)); + $window.localStorage.setItem(key, value); } // appends the value to the existing item stored at key. @@ -395,6 +395,7 @@ angular.module('egCoreMod') } // assumes the appender and appendee are both strings + // TODO: support arrays as well service.appendLocalItem = function(key, value) { var item = service.getLocalItem(key); if (item) {