LP1739288: report back on invalid barcodes in Item Status screen
authorJane Sandberg <sandbej@linnbenton.edu>
Mon, 19 Aug 2019 19:43:33 +0000 (12:43 -0700)
committerJosh Stompro <stompro@stompro.org>
Fri, 13 Sep 2019 14:29:45 +0000 (09:29 -0500)
To test:

1) Make a text file with both valid and invalid item barcodes.
2) Go to Circulation > Item Status and upload your file.
3) Note that the valid barcodes result in rows in the item status
screen, and the invalid barcodes are not displayed anywhere.
4) Apply this commit.
5) Repeat step 2.
6) Notice that the invalid barcodes are now reported in a new alert.
7) Make a text file with only valid barcodes and upload it.
8) Upload it.  Notice that the alert disappears.

Signed-off-by: Jane Sandberg <sandbej@linnbenton.edu>
Signed-off-by: Josh Stompro <stompro@stompro.org>
Open-ILS/src/templates/staff/cat/item/index.tt2
Open-ILS/web/js/ui/default/staff/cat/item/app.js

index 9cb8be8..55951b9 100644 (file)
   </div>
 </div>
 
+<div class="row">
+  <div class="col-md-6">
+    <div ng-show="context.itemsNotFound.length" class="alert alert-danger" role="alert">
+      <h3>[% l('The following barcodes are incorrect or deleted') %]</h3>
+      <ul>
+        <li ng-repeat="badBarcode in context.itemsNotFound">{{badBarcode}}</li>
+      </ul>
+    </div>
+  </div>
+</div>
+
 <div ng-view></div>
 
 [% END %]
index 52d2d02..94e7024 100644 (file)
@@ -359,6 +359,7 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD
     };
 
     $scope.$watch('barcodesFromFile', function(newVal, oldVal) {
+        $scope.context.itemsNotFound = [];
         if (newVal && newVal != oldVal) {
             $scope.args.barcode = '';
             var barcodes = [];
@@ -388,7 +389,12 @@ function($scope , $q , $window , $location , $timeout , egCore , egNet , egGridD
                     return;
                 }
 
-                itemSvc.fetch(barcode).then(fetch_next_copy);
+                itemSvc.fetch(barcode).then(function(item) {
+                    if (!item) {
+                        $scope.context.itemsNotFound.push(barcode);
+                    }
+                    fetch_next_copy();
+                })
             }
 
             if (barcodes.length) {