LP1896285 Post mark-missing serialized item load
authorBill Erickson <berickxx@gmail.com>
Thu, 17 Dec 2020 15:19:14 +0000 (07:19 -0800)
committerBill Erickson <berickxx@gmail.com>
Mon, 11 Jan 2021 20:43:41 +0000 (15:43 -0500)
Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Open-ILS/web/js/ui/default/staff/cat/item/app.js
Open-ILS/web/js/ui/default/staff/circ/services/item.js

index 2995069..f0697ea 100644 (file)
@@ -412,8 +412,8 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD
         }
     });
 
         }
     });
 
-    $scope.context.search = function(args) {
-        if (!args.barcode) return;
+    $scope.context.search = function(args, noGridRefresh) {
+        if (!args.barcode) return $q.when();
         $scope.context.itemNotFound = false;
 
         //check to see if there are multiple barcodes in CSV format
         $scope.context.itemNotFound = false;
 
         //check to see if there are multiple barcodes in CSV format
@@ -434,12 +434,15 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD
             //convert to newline seperated list and send to barcodesFromFile processor
             $scope.barcodesFromFile = barcodes.join('\n');
             //console.log('Barcodes: ',barcodes);
             //convert to newline seperated list and send to barcodesFromFile processor
             $scope.barcodesFromFile = barcodes.join('\n');
             //console.log('Barcodes: ',barcodes);
-        }
-        else {
+            return $q.when();
+
+        } else {
             //Single Barcode
             //Single Barcode
-            itemSvc.fetch(args.barcode).then(function(res) {
+            return itemSvc.fetch(args.barcode).then(function(res) {
                 if (res) {
                 if (res) {
-                    copyGrid.refresh();
+                    if (!noGridRefresh) {
+                        copyGrid.refresh();
+                    }
                     copyGrid.selectItems([res.index]);
                     $scope.args.barcode = '';
                 } else {
                     copyGrid.selectItems([res.index]);
                     $scope.args.barcode = '';
                 } else {
@@ -451,9 +454,9 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD
         }
     }
 
         }
     }
 
-    var add_barcode_to_list = function (b) {
-        //console.log('listCtrl: add_barcode_to_list',b);
-        $scope.context.search({barcode:b});
+    var add_barcode_to_list = function (b, noGridRefresh) {
+        // console.log('listCtrl: add_barcode_to_list',b);
+        return $scope.context.search({barcode:b}, noGridRefresh);
     }
     itemSvc.add_barcode_to_list = add_barcode_to_list;
 
     }
     itemSvc.add_barcode_to_list = add_barcode_to_list;
 
@@ -632,7 +635,11 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD
     }
 
     $scope.selectedHoldingsMissing = function () {
     }
 
     $scope.selectedHoldingsMissing = function () {
-        itemSvc.selectedHoldingsMissing(copyGrid.selectedItems());
+        itemSvc.selectedHoldingsMissing(copyGrid.selectedItems())
+        .then(function() { 
+            console.debug('Marking missing complete, refreshing grid');
+            copyGrid.refresh();
+        });
     }
 
     $scope.checkin = function () {
     }
 
     $scope.checkin = function () {
index d7c43ef..8522f15 100644 (file)
@@ -656,8 +656,16 @@ function(egCore , egOrg , egCirc , $uibModal , $q , $timeout , $window , ngToast
     }
 
     service.selectedHoldingsMissing = function (items) {
     }
 
     service.selectedHoldingsMissing = function (items) {
-        egCirc.mark_missing(items.map(function(el){return {id : el.id, barcode : el.barcode};})).then(function(){
-            angular.forEach(items, function(cp){service.add_barcode_to_list(cp.barcode)});
+        return egCirc.mark_missing(
+            items.map(function(el){return {id : el.id, barcode : el.barcode};})
+        ).then(function(){
+            var promise = $q.when();
+            angular.forEach(items, function(cp){
+                promise = promise.then(function() {
+                    return service.add_barcode_to_list(cp.barcode, true);
+                });
+            });
+            return promise;
         });
     }
 
         });
     }