LP#1683575 - Webstaff fix silent fail of bad barcodes in ItemStatus
authorCesar Velez <cesar.velez@equinoxinitiative.org>
Wed, 16 Aug 2017 21:39:30 +0000 (17:39 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 30 Aug 2017 21:52:14 +0000 (17:52 -0400)
This address the current issue in master, that causes bad barcodes
to fail silently.

To test
-------
[1] In the web staff client, go to Item Status and enter an item
    barcode that is not present in the database. Note that no
    warning message displayed.
[2] Apply the patch and repeat step 1. This tie, an 'Item Not Found'
    message is displayed.

Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/web/js/ui/default/staff/circ/services/item.js

index 28eae2a..17d3269 100644 (file)
@@ -99,7 +99,11 @@ function(egCore , egCirc , $uibModal , $q , $timeout , $window , egConfirmDialog
                     return copyData;
                 });
         }
+
         return fetchCopy(barcode, id).then(function(res) {
+
+            if(!res.copy) { return $q.when(); }
+
             return fetchCirc(copyData.copy).then(function(res) {
                 if (copyData.circ) {
                     return fetchSummary(copyData.circ).then(function() {
@@ -122,6 +126,7 @@ function(egCore , egCirc , $uibModal , $q , $timeout , $window , egConfirmDialog
 
         return service.retrieveCopyData(barcode, id)
         .then(function(copyData) {
+            if(!copyData) { return $q.when(); }
             //Make sure we're getting a completed copyData - no plain acp or circ objects
             if (copyData.circ) {
                 // flesh circ_lib locally