LP#1754387 - User Buckets - Pending Users Enhancement
authorJosh Stompro <stompro@stompro.org>
Mon, 3 Feb 2020 19:42:08 +0000 (13:42 -0600)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 22 Jul 2020 17:49:05 +0000 (13:49 -0400)
It wasn't possible to load more than 100 users from a barcode file import in
user buckets because of two issues.  The pager was limited to only showing 100
barcodes at a time, and moving any users from the pending list would clear the
pending list.

Here is a branch that makes the following changes.

1. Sets the default number of items to 100 and allows choosing the
  500,1000,10000 options for the pager.

2. When moving users from pending to a bucket, only removes the moved users
  from the pending list.  This allows the user to move a larger number of
  users to a bucket from pending, a batch at a time.

Testing Plan:

Before Changes:

1. Load a file with 110 patron barcodes in the User Buckets, Pending Users interface.
2. See that the pager only allows a max of 100 for the page size.
3. Move one user to a bucket and note that the pending list gets cleared.

After Changes:

1. Load a file with 110 patron barcodes.
2. See that the pager allows for picking larger page sizes.
3. Move one user to a bucket, and note that the pending list removes just that one user.

Another way to see the changes is to pick a pager size of 25, and select all the
entries.  Then move them to a bucket and see that you can continue to move
batches of 25 until you have moved all the pending users.

Signed-off-by: Josh Stompro <stompro@stompro.org>
Signed-off-by: Gina Monti <gmonti@biblio.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/templates/staff/circ/patron/bucket/t_pending.tt2
Open-ILS/web/js/ui/default/staff/circ/patron/bucket/app.js

index 2df627e..39d1e1e 100644 (file)
@@ -25,7 +25,8 @@
 
 <eg-grid
   ng-hide="forbidden"
-  features="-sort,-multisort,-display"
+  features="-sort,-multisort,-display,allowAll"
+  page-size=100
   id-field="id"
   idl-class="au"
   auto-fields="true"
index 70025b5..e391874 100644 (file)
@@ -89,6 +89,7 @@ function($scope,  $location,  $q,  $timeout,  $uibModal,
                 var item = new egCore.idl.cubi();
                 item.bucket(bucketSvc.currentBucket.id());
                 item.target_user(rec.id);
+                $scope.removeFromPendingList(rec.id);
                 egCore.net.request(
                     'open-ils.actor',
                     'open-ils.actor.container.item.create', 
@@ -104,7 +105,8 @@ function($scope,  $location,  $q,  $timeout,  $uibModal,
                 });
             }
         );
-        $scope.resetPendingList();
+        //re-draw the pending list
+        $scope.resetPendingListQuery();
     }
 
     $scope.openCreateBucketDialog = function() {
@@ -265,7 +267,21 @@ function($scope,  $routeParams,  bucketSvc , egGridDataProvider,   egCore , ngTo
     }
 
     $scope.$parent.resetPendingList = $scope.resetPendingList;
-    
+
+    //remove entry from PendingList
+    $scope.removeFromPendingList = function(usr) {
+        const index = bucketSvc.pendingList.indexOf(usr);
+        if (index > -1) {
+            bucketSvc.pendingList.splice(index,1);
+        }
+    }
+    $scope.$parent.removeFromPendingList = $scope.removeFromPendingList;
+
+    $scope.resetPendingListQuery = function() {
+        $scope.gridControls.setQuery({id : bucketSvc.pendingList});
+    }
+    $scope.$parent.resetPendingListQuery = $scope.resetPendingListQuery;
+
     if ($routeParams.id && 
         (!bucketSvc.currentBucket || 
             bucketSvc.currentBucket.id() != $routeParams.id)) {