From 312eb5bbf805d7050aad367e8c8ce17d0b343bdf Mon Sep 17 00:00:00 2001 From: Mike Rylander Date: Tue, 23 May 2017 11:33:51 -0400 Subject: [PATCH] webstaff: Provide "reset" method for serial items Signed-off-by: Mike Rylander --- Open-ILS/src/templates/staff/serials/index.tt2 | 11 +++++-- .../templates/staff/serials/t_view_items_grid.tt2 | 3 ++ .../staff/serials/directives/view-items-grid.js | 34 ++++++++++++++++------ 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Open-ILS/src/templates/staff/serials/index.tt2 b/Open-ILS/src/templates/staff/serials/index.tt2 index 96af178e8a..ab7dccbb84 100644 --- a/Open-ILS/src/templates/staff/serials/index.tt2 +++ b/Open-ILS/src/templates/staff/serials/index.tt2 @@ -28,8 +28,15 @@ angular.module('egCoreMod').run(['egStrings', function(s) { s.SERIALS_EDIT_SISS_HC = "[% l('Edit issue information') %]"; s.SERIALS_ISSUANCE_PREDICT = "[% l('Predict New Issues: Initial Values') %]"; s.SERIALS_ISSUANCE_ADD = "[% l('Add folloing issue') %]"; - s.CONFIRM_DELETE_ITEMS = "[% l('Delete selected items?') %]"; - s.CONFIRM_DELETE_ITEMS_MESSAGE = "[% l('Will delete {{items}} items') %]"; + + s.CONFIRM_CHANGE_ITEMS = {}; + s.CONFIRM_CHANGE_ITEMS_MESSAGE = {}; + s.CONFIRM_CHANGE_ITEMS.delete = "[% l('Delete selected item(s)?') %]"; + s.CONFIRM_CHANGE_ITEMS_MESSAGE.delete = "[% l('Will delete {{items}} item(s).') %]"; + s.CONFIRM_CHANGE_ITEMS.reset = "[% l('Reset selected items?') %]" + s.CONFIRM_CHANGE_ITEMS_MESSAGE.reset = "[% l('Will reset {{items}} item(s) to Expected and remove unit(s).') %]"; + s.CONFIRM_CHANGE_ITEMS.receive = "[% l('Receive selected items?') %]" + s.CONFIRM_CHANGE_ITEMS_MESSAGE.receive = "[% l('Will receive {{items}} item(s) without barcoding.') %]"; s.SERIALS_ITEM_STATUS = {}; s.SERIALS_ITEM_STATUS.Expected = "[% l('Expected') %]"; diff --git a/Open-ILS/src/templates/staff/serials/t_view_items_grid.tt2 b/Open-ILS/src/templates/staff/serials/t_view_items_grid.tt2 index b05b0787d1..fb0309fd0c 100644 --- a/Open-ILS/src/templates/staff/serials/t_view_items_grid.tt2 +++ b/Open-ILS/src/templates/staff/serials/t_view_items_grid.tt2 @@ -62,6 +62,9 @@ + + diff --git a/Open-ILS/web/js/ui/default/staff/serials/directives/view-items-grid.js b/Open-ILS/web/js/ui/default/staff/serials/directives/view-items-grid.js index af6b38a157..3ad5e348a2 100644 --- a/Open-ILS/web/js/ui/default/staff/serials/directives/view-items-grid.js +++ b/Open-ILS/web/js/ui/default/staff/serials/directives/view-items-grid.js @@ -67,8 +67,8 @@ function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider , }); egConfirmDialog.open( - egCore.strings.CONFIRM_DELETE_ITEMS, - egCore.strings.CONFIRM_DELETE_ITEMS_MESSAGE, + egCore.strings.CONFIRM_CHANGE_ITEMS.delete, + egCore.strings.CONFIRM_CHANGE_ITEMS_MESSAGE.delete, {items : list.length} ).result.then(function () { return egCore.net.request( @@ -250,6 +250,12 @@ function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider , }), $scope.receive_and_barcode); } + $scope.reset_selected = function (list) { + return process_next('reset', list.map(function(item) { + return egCore.idl.Clone(egSerialsCoreSvc.itemMap[item.id]); + })); + } + $scope.bind_selected = function (list) { return process_next('bind', list.map(function(item) { return egCore.idl.Clone(egSerialsCoreSvc.itemMap[item.id]); @@ -401,17 +407,25 @@ function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider , $scope.cancel = function () { $uibModalInstance.dismiss() } }] }).result}); + } else { + last_promise = current_promise.then(function(){ + return egConfirmDialog.open( + egCore.strings.CONFIRM_CHANGE_ITEMS[mode], + egCore.strings.CONFIRM_CHANGE_ITEMS_MESSAGE[mode], + {items : list.length} + ).result.then(function () { + return $q.when(list); + }); + }); } - if (last_promise) current_promise = last_promise; - - current_promise.then(function (items) { + last_promise.then(function (items) { var donor_unit_ids = {}; angular.forEach(items, function(i, index) { - if (item.unit()) donor_unit_ids[item.unit().id()] = 1; - if (do_barcode) item.unit(-1); - if (bind) item.unit(-2); + if (i.unit()) donor_unit_ids[i.unit().id()] = 1; + if (do_barcode) i.unit(-1); + if (bind) i.unit(-2); copy_locations[i.id()] = i._copy_location; circ_mods[i.id()] = i._circ_mod; call_numbers[i.id()] = i._call_number || 'DEFAULT'; @@ -422,8 +436,10 @@ function($scope , $q , egSerialsCoreSvc , egCore , egGridDataProvider , var method; if (mode == 'receive') { method = 'open-ils.serial.receive_items'; - } else { // bind mode + } else if ( mode == 'bind') { method = 'open-ils.serial.bind_items'; + } else if ( mode == 'reset') { + method = 'open-ils.serial.reset_items'; } return egCore.net.request( -- 2.11.0