From e0248ed22f99d13ff1ec60552db32793cdf90163 Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Thu, 12 Apr 2018 10:47:40 -0400 Subject: [PATCH 1/1] Lp 1735539: Fix Item Status ability to delete multiple copies. Use the notify handler instead of the resolve handler to collect our copies. This ensures we get them all instead of just the last one. To reproduce the bug: 1. Open Item Status in the web staff client. 2. Load multiple items, perhaps by uploading a file of barcodes. 3. Select more than 1 item from the list. 4. Choose "Delete Items" from the Actions menu. 5. Note that the dialog indicates that you will delete 1 copy. 6. Click the Cancel button in the dialog. To test, after applying the fix branch: 1. Open Item Status in the web staff client. 2. Load multiple items, perhaps by uploading a file of barcodes. 3. Select more than 1 item from the list. 4. Choose "Delete Items" from the Actions menu. 5. Note that that the dialog indicates you will delete X copies, where X is the number of items selected. 6. Click OK and confirm that all copies were deleted. 7. You can confirm 6 by reloading the interface and uploading the file of barcodes again. Signed-off-by: Jason Stephenson Signed-off-by: Jason Boyer Signed-off-by: Dan Wells --- Open-ILS/web/js/ui/default/staff/circ/services/item.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Open-ILS/web/js/ui/default/staff/circ/services/item.js b/Open-ILS/web/js/ui/default/staff/circ/services/item.js index 02a58d95e5..4e752bdcbb 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/services/item.js +++ b/Open-ILS/web/js/ui/default/staff/circ/services/item.js @@ -503,9 +503,7 @@ function(egCore , egCirc , $uibModal , $q , $timeout , $window , egConfirmDialog egCore.pcrud.search('acp', {deleted : 'f', id : items.map(function(el){return el.id;}) }, { flesh : 1, flesh_fields : { acp : ['call_number'] } } - ).then(function(copy) { - copy_objects.push(copy); - }).then(function() { + ).then(function() { var cnHash = {}; var perCnCopies = {}; @@ -555,6 +553,10 @@ function(egCore , egCirc , $uibModal , $q , $timeout , $window , egConfirmDialog angular.forEach(items, function(cp){service.add_barcode_to_list(cp.barcode)}); }); }); + }, + null, + function(copy) { + copy_objects.push(copy); }); } -- 2.43.2