From: Jason Etheridge Date: Thu, 9 Jun 2011 20:07:20 +0000 (-0400) Subject: UI: if a volume deletion request results in VOLUME_NOT_EMPTY, then offer to delete... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=d3494f9726401da2188b5c810e68001d022f12c3;p=evergreen%2Fequinox.git UI: if a volume deletion request results in VOLUME_NOT_EMPTY, then offer to delete the items along with the volumes Signed-off-by: Jason Etheridge --- diff --git a/Open-ILS/xul/staff_client/server/cat/copy_browser.js b/Open-ILS/xul/staff_client/server/cat/copy_browser.js index 5f2ee1dd0d..b4f4d63c90 100644 --- a/Open-ILS/xul/staff_client/server/cat/copy_browser.js +++ b/Open-ILS/xul/staff_client/server/cat/copy_browser.js @@ -676,27 +676,42 @@ cat.copy_browser.prototype = { document.getElementById('commonStrings').getString('common.confirm') ); - if (r == 0) { + if (r == 0) { // delete vols for (var i = 0; i < list.length; i++) { list[i].isdeleted('1'); } - var robj = obj.network.simple_request( - 'FM_ACN_TREE_UPDATE', - [ ses(), list, true ], - null, - { - 'title' : document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.override'), - 'overridable_events' : [ - ] - } - ); - if (robj == null) throw(robj); - if (typeof robj.ilsevent != 'undefined') { - if (robj.ilsevent == 1206 /* VOLUME_NOT_EMPTY */) { - alert(document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.copies_remain')); - return; + var params = {}; + loop: while(true) { + var robj = obj.network.simple_request( + 'FM_ACN_TREE_UPDATE', + [ ses(), list, true, params ], + null, + { + 'title' : document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.override'), + 'overridable_events' : [ + ] + } + ); + if (robj == null) throw(robj); + if (typeof robj.ilsevent != 'undefined') { + if (robj.ilsevent == 1206 /* VOLUME_NOT_EMPTY */) { + var r2 = obj.error.yns_alert( + document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.copies_remain'), + document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.title'), + document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.copies_remain.confirm'), + document.getElementById('catStrings').getString('staff.cat.copy_browser.delete_volume.copies_remain.cancel'), + null, + document.getElementById('commonStrings').getString('common.confirm') + ); + if (r2 == 0) { // delete vols and copies + params.force_delete_copies = true; + continue loop; + } + } else { + if (robj.ilsevent != 0) throw(robj); + } } - if (robj.ilsevent != 0) throw(robj); + break loop; } obj.refresh_list(); } diff --git a/Open-ILS/xul/staff_client/server/circ/copy_status.js b/Open-ILS/xul/staff_client/server/circ/copy_status.js index 9ff0201231..f2816c12e7 100644 --- a/Open-ILS/xul/staff_client/server/circ/copy_status.js +++ b/Open-ILS/xul/staff_client/server/circ/copy_status.js @@ -802,23 +802,38 @@ circ.copy_status.prototype = { for (var i = 0; i < list.length; i++) { list[i].isdeleted('1'); } - var robj = obj.network.simple_request( - 'FM_ACN_TREE_UPDATE', - [ ses(), list, true ], - null, - { - 'title' : document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.override'), - 'overridable_events' : [ - ] - } - ); - if (robj == null) throw(robj); - if (typeof robj.ilsevent != 'undefined') { - if (robj.ilsevent == 1206 /* VOLUME_NOT_EMPTY */) { - alert(document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.delete_copies')); - return; + var params = {}; + loop: while(true) { + var robj = obj.network.simple_request( + 'FM_ACN_TREE_UPDATE', + [ ses(), list, true, params ], + null, + { + 'title' : document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.override'), + 'overridable_events' : [ + ] + } + ); + if (robj == null) throw(robj); + if (typeof robj.ilsevent != 'undefined') { + if (robj.ilsevent == 1206 /* VOLUME_NOT_EMPTY */) { + var r2 = obj.error.yns_alert( + document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.delete_copies'), + document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.title'), + document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.delete_copies.confirm'), + document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.delete_copies.cancel'), + null, + document.getElementById('commonStrings').getString('common.confirm') + ); + if (r2 == 0) { // delete vols and copies + params.force_delete_copies = true; + continue loop; + } + } else { + if (robj.ilsevent != 0) { throw(robj); } + } } - if (robj.ilsevent != 0) { throw(robj); } + break loop; } alert(document.getElementById('circStrings').getString('staff.circ.copy_status.delete_volumes.success')); } diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties b/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties index 4cde2aec6e..94a8f9b597 100644 --- a/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties +++ b/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties @@ -56,7 +56,9 @@ staff.cat.copy_browser.delete_volume.title=Delete Volumes? staff.cat.copy_browser.delete_volume.delete=Delete staff.cat.copy_browser.delete_volume.cancel=Cancel staff.cat.copy_browser.delete_volume.override=Override Delete Failure? -staff.cat.copy_browser.delete_volume.copies_remain=You must delete all the copies on the volume before you may delete the volume itself. +staff.cat.copy_browser.delete_volume.copies_remain=You must delete all the items on the volume before you may delete the volume itself. +staff.cat.copy_browser.delete_volume.copies_remain.confirm=Delete Volume and Items +staff.cat.copy_browser.delete_volume.copies_remain.cancel=Cancel Delete staff.cat.copy_browser.delete_volume.exception=copy browser -> delete volumes staff.cat.copy_browser.mark_library.alert=Library + Record marked as Volume Transfer Destination staff.cat.copy_browser.mark_library.prompt=Choose just one Library to mark as Volume Transfer Destination diff --git a/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties b/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties index 66ed6a376f..15f4d3745b 100644 --- a/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties +++ b/Open-ILS/xul/staff_client/server/locale/en-US/circ.properties @@ -134,7 +134,9 @@ staff.circ.copy_status.delete_volumes.title=Delete Volumes? staff.circ.copy_status.delete_volumes.delete=Delete staff.circ.copy_status.delete_volumes.cancel=Cancel staff.circ.copy_status.delete_volumes.override=Override Delete Failure? -staff.circ.copy_status.delete_volumes.delete_copies=You must delete all the copies on the volume before you may delete the volume itself. +staff.circ.copy_status.delete_volumes.delete_copies=You must delete all the items on the volume before you may delete the volume itself. +staff.circ.copy_status.delete_volumes.delete_copies.confirm=Delete Volume and Items +staff.circ.copy_status.delete_volumes.delete_copies.cancel=Cancel Delete staff.circ.copy_status.delete_volumes.success=Volumes deleted. staff.circ.copy_status.mark_volume.status=Volume marked as Item Transfer Destination staff.circ.copy_status.mark_volume.prompt=Choose just one Volume to mark as Item Transfer Destination