From 73412bb789aa7df7fec3f0e130d5bee18e083ed6 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 7 Jul 2014 09:00:50 -0400 Subject: [PATCH] patron holds ; retarget Signed-off-by: Bill Erickson --- .../src/templates/staff/circ/patron/t_holds.tt2 | 2 ++ .../templates/staff/circ/share/hold_strings.tt2 | 2 ++ .../web/js/ui/default/staff/circ/patron/holds.js | 6 +++++ .../web/js/ui/default/staff/circ/services/holds.js | 30 ++++++++++++++++++++++ 4 files changed, 40 insertions(+) diff --git a/Open-ILS/src/templates/staff/circ/patron/t_holds.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_holds.tt2 index e30fd4d585..a14d6ffc5b 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_holds.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_holds.tt2 @@ -41,6 +41,8 @@ label="[% l('Mark Item Damaged') %]"> + diff --git a/Open-ILS/src/templates/staff/circ/share/hold_strings.tt2 b/Open-ILS/src/templates/staff/circ/share/hold_strings.tt2 index 1cf5111920..aaee92c7e2 100644 --- a/Open-ILS/src/templates/staff/circ/share/hold_strings.tt2 +++ b/Open-ILS/src/templates/staff/circ/share/hold_strings.tt2 @@ -21,6 +21,8 @@ s.TRANSFER_HOLD_TO_TITLE = "[% l('Tranfer [_1] Hold(s) to bib record ID [_2]?', '{{num_holds}}', '{{bib_id}}') %]"; s.NO_HOLD_TRANSFER_TITLE_MARKED = "[% l('No record is marked as a hold transfer target!') %]"; +s.RETARGET_HOLDS = + "[% l('Reset hold(s) [_1]?', '{{hold_ids}}') %]"; }]); diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/holds.js b/Open-ILS/web/js/ui/default/staff/circ/patron/holds.js index 2bc4434c17..086a7cf12d 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/holds.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/holds.js @@ -168,6 +168,12 @@ function($scope, $q, $routeParams, egCore, egUser, patronSvc, egCirc.mark_missing(copy_ids).then(refresh_all); } + $scope.retarget = function(items) { + var hold_ids = items.map(function(item) { return item.hold.id() }); + egHolds.retarget(hold_ids).then(refresh_all); + } + + }]) diff --git a/Open-ILS/web/js/ui/default/staff/circ/services/holds.js b/Open-ILS/web/js/ui/default/staff/circ/services/holds.js index 94ef30b3ab..a2fc75ab24 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/services/holds.js +++ b/Open-ILS/web/js/ui/default/staff/circ/services/holds.js @@ -278,6 +278,36 @@ function($modal , $q , egCore , egAlertDialog , egConfirmDialog , egAlertDialog) }); } + // serially retargets each hold + service.retarget = function(hold_ids) { + if (!hold_ids.length) return $q.when(); + var deferred = $q.defer(); + + egConfirmDialog.open( + egCore.strings.RETARGET_HOLDS, '', + {hold_ids : hold_ids.join(',')} + + ).result.then(function() { + + function do_one() { + var hold_id = hold_ids.pop(); + if (!hold_id) { + deferred.resolve(); + return; + } + + egCore.net.request( + 'open-ils.circ', + 'open-ils.circ.hold.reset', + egCore.auth.token(), hold_id).finally(do_one); + } + + do_one(); // kick it off + }); + + return deferred.promise; + } + return service; }]) -- 2.11.0