From 6dc42f8f3543e670964a6afbf5c1311cacb36947 Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Sun, 21 Oct 2018 18:30:49 -0400 Subject: [PATCH] Finishing ti up? --- .../templates/staff/circ/share/circ_strings.tt2 | 2 + .../web/js/ui/default/staff/circ/services/circ.js | 57 ++++++++++++++++++++-- 2 files changed, 54 insertions(+), 5 deletions(-) diff --git a/Open-ILS/src/templates/staff/circ/share/circ_strings.tt2 b/Open-ILS/src/templates/staff/circ/share/circ_strings.tt2 index d760d642e1..fc5d57cfa6 100644 --- a/Open-ILS/src/templates/staff/circ/share/circ_strings.tt2 +++ b/Open-ILS/src/templates/staff/circ/share/circ_strings.tt2 @@ -33,6 +33,8 @@ s.MARK_ITEM_IN_TRANSIT = '[% l("Item {{barcode}} is in transit.") %]'; s.MARK_ITEM_RESTRICT_DELETE = '[% l("Item {{barcode}} is in a status with a copy delete warning.") %]'; s.MARK_ITEM_LAST_HOLD_COPY = '[% l("Item {{barcode}} is the last item to fill a hold.") %]'; s.MARK_ITEM_CONTINUE = '[% l("Do you wish to continue marking it {{status}}?") %]'; +s.MARK_ITEM_CHECKIN_CONTINUE = '[% l("Do you wish to check it in and continue marking it {{status}}?") %]'; +s.MARK_ITEM_ABORT_CONTINUE = '[% l("Do you wish to abort the transit and continue marking it {{status}}?"]'; s.ABORT_TRANSIT_CONFIRM = '[% l("Cancel {{num_transits}} transits?") %]'; s.ROUTE_TO_HOLDS_SHELF = '[% l("Holds Shelf") %]'; s.ROUTE_TO_CATALOGING = '[% l("Cataloging") %]'; diff --git a/Open-ILS/web/js/ui/default/staff/circ/services/circ.js b/Open-ILS/web/js/ui/default/staff/circ/services/circ.js index 7d18f285c8..c135a4c7df 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/services/circ.js +++ b/Open-ILS/web/js/ui/default/staff/circ/services/circ.js @@ -1376,10 +1376,59 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog, egAddCopyAl service.mark_item = function(copy, markstatus, args) { if (!copy) return $q.when(); - var req; + + // Used later handle events from the back end call. + function handle_event(copy, status, args, event) { + var dlogTitle, dlogMessage; + switch (event.textcode) { + case 'ITEM_TO_MARK_CHECKED_OUT': + dlogTitle = egcore.strings.MARK_ITEM_CHECKED_OUT; + dlogMessage = egCore.strings.MARK_ITEM_CHECKIN_CONTINUE; + args.handle_checkin = 1; + break; + case 'ITEM_TO_MARK_IN_TRANSIT': + dlogTitle = egCore.strings.MARK_ITEM_TRANSIT; + dlogMessage = egCore.strings.MARK_ITEM_ABORT_CONTINUE; + args.handle_transit = 1; + break; + case 'ITEM_TO_MARK_LAST_HOLD_COPY': + dlogTitle = egCore.strings.MARK_ITEM_LAST_HOLD_COPY; + dlogMessage = egCore.strings.MARK_ITEM_CONTINUE; + args.handle_last_hold_copy = 1; + break; + case 'COPY_DELETE_WARNING': + dlogTitle = egCore.strings.MARK_ITEM_RESTRICT_DELETE; + dlogMessage = egCore.strings.MARK_ITEM_CONTINUE; + args.handle_copy_delete_warning = 1; + break; + case 'PERM_FAILURE': + return service.exit_alert(egCore.strings.PERMISSION_DENIED, + event.ilsperm); + break; + default: + // TODO: Report failure to user. + console.error('Mark item ' + status.name() + ' for ' + copy.barcode + ' failed: ' + + event); + return $q.reject(); + break; + } + return egConfirmDialog.open( + dlogTitle, dlogMessage, + { + barcode : copy.barcode, + status : status.name(), + ok : function () {}, + cancel : function () {} + } + ).result.then(function() { + return service.mark_item(copy, status, args); + }); + } + // If any new back end mark_item calls are added, also add // them here to use them from the staff client. // TODO: I didn't find any JS constants for copy status. + var req; switch (markstatus.id()) { case 2: // Not implemented in the staff client, yet. @@ -1419,10 +1468,8 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog, egAddCopyAl copy.id, args ).then(function(resp) { - if (resp == 1) { - console.debug(req + ' succeeded for ' + copy.barcode); - } else if (evt = egCore.evt.parse(resp)) { - console.error(req + ' failed for ' + copy.barcode + ': ' + resp.textcode); + if (evt = egCore.evt.parse(resp)) { + return handle_event(copy, markstatus, args, evt); } }); } -- 2.11.0