From: Cesar Velez <cesar.velez@equinoxinitiative.org> Date: Wed, 7 Feb 2018 17:05:10 +0000 (-0500) Subject: LP#1746566: Enable 500, 1K, and ALL-the-Rows in patron grids X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=6c511a7d53eefa0b543c2212f8064f60cd74dd7a;p=evergreen%2Fjoelewis.git LP#1746566: Enable 500, 1K, and ALL-the-Rows in patron grids This adds to the Patron (non-catalogued) Items Out, Patron Holds, and Item Status grids an 'allowAll' grid feature which will enable the 500, 1K, and ALL (really 10K) rows/pagesize. For the ALL option a modal has been wired to that the action can be confirmed, since it might be a very slow operation. Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> --- diff --git a/Open-ILS/src/templates/staff/base_js.tt2 b/Open-ILS/src/templates/staff/base_js.tt2 index e2e88dec73..11ec8ec1d1 100644 --- a/Open-ILS/src/templates/staff/base_js.tt2 +++ b/Open-ILS/src/templates/staff/base_js.tt2 @@ -138,6 +138,8 @@ UpUp.start({ s.CONFIRM_IN_HOUSE_NUM_USES_COUNT_TITLE = "[% l('Are you sure you want to record {{num_uses}} uses for this?') %]"; s.PAGE_TITLE_DEFAULT = "[% l('Evergreen Staff Client') %]"; s.PAGE_TITLE_DYNAMIC_AND_CONTEXT = "[% l('[_1] - [_2]', '{{dynamic}}', '{{context}}') %]"; + s.CONFIRM_LONG_RUNNING_ACTION_MSG = "[% l('This action might take a while to complete. Continue?') %]"; + s.CONFIRM_LONG_RUNNING_ACTION_ALL_ROWS_TITLE = "[% l('Are you sure you want to load ALL items?') %]"; }]); </script> diff --git a/Open-ILS/src/templates/staff/cat/item/t_list.tt2 b/Open-ILS/src/templates/staff/cat/item/t_list.tt2 index 08435d0893..1d2602c816 100644 --- a/Open-ILS/src/templates/staff/cat/item/t_list.tt2 +++ b/Open-ILS/src/templates/staff/cat/item/t_list.tt2 @@ -1,7 +1,7 @@ <eg-grid id-field="index" idl-class="acp" - features="-display,clientsort" + features="-display,clientsort,allowAll" main-label="[% l('Item Status') %]" items-provider="gridDataProvider" grid-controls="gridControls" diff --git a/Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2 index 9c8962e31a..8f469103ce 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2 @@ -1,6 +1,6 @@ <eg-grid id-field="id" - features="clientsort" + features="clientsort,allowAll" items-provider="gridDataProvider" persist-key="circ.patron.holds" dateformat="{{$root.egDateAndTimeFormat}}"> diff --git a/Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2 index 45c467cf5c..d3ac6de6c4 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2 @@ -29,7 +29,7 @@ ng-if="items_out_display == 'noncat'" idl-class="ancc" id-field="id" - features="clientsort" + features="clientsort,allowAll" items-provider="gridDataProvider" persist-key="circ.patron.items_out.noncat" dateformat="{{$root.egDateAndTimeFormat}}"> diff --git a/Open-ILS/src/templates/staff/share/t_autogrid.tt2 b/Open-ILS/src/templates/staff/share/t_autogrid.tt2 index 58b3534cf1..303e19141e 100644 --- a/Open-ILS/src/templates/staff/share/t_autogrid.tt2 +++ b/Open-ILS/src/templates/staff/share/t_autogrid.tt2 @@ -120,8 +120,13 @@ {{t}} </a> </li> + <li ng-if="allowAll" ng-repeat="t in [500,1000]"> + <a href ng-click='offset(0);limit(t);collect()'> + {{t}} + </a> + </li> <li ng-if="allowAll" > - <a href ng-click='offset(0);limit(10000);collect()'>[% l('All') %]</a> + <a href ng-click='confirmAllowAllAndCollect();'>[% l('All') %]</a> </li> </ul> </div> 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 c774c7f43f..688a2576f7 100644 --- a/Open-ILS/web/js/ui/default/staff/services/grid.js +++ b/Open-ILS/web/js/ui/default/staff/services/grid.js @@ -127,10 +127,10 @@ angular.module('egGridMod', controller : [ '$scope','$q','egCore','egGridFlatDataProvider','$location', 'egGridColumnsProvider','$filter','$window','$sce','$timeout', - 'egProgressDialog','$uibModal', + 'egProgressDialog','$uibModal','egConfirmDialog','egStrings', function($scope, $q , egCore, egGridFlatDataProvider , $location, egGridColumnsProvider , $filter , $window , $sce , $timeout, - egProgressDialog , $uibModal) { + egProgressDialog, $uibModal , egConfirmDialog , egStrings) { var grid = this; @@ -1188,6 +1188,18 @@ angular.module('egGridMod', $scope.collect = function() { grid.collect() } + + $scope.confirmAllowAllAndCollect = function(){ + egConfirmDialog.open(egStrings.CONFIRM_LONG_RUNNING_ACTION_ALL_ROWS_TITLE, + egStrings.CONFIRM_LONG_RUNNING_ACTION_MSG) + .result + .then(function(){ + $scope.offset(0); + $scope.limit(10000); + grid.collect(); + }); + } + // asks the dataProvider for a page of data grid.collect = function() {