From de8de829b5bec4ad3f5fc318e2edde59f410f819 Mon Sep 17 00:00:00 2001 From: pines Date: Wed, 30 Aug 2006 20:18:51 +0000 Subject: [PATCH] replace barcode entry points git-svn-id: svn://svn.open-ils.org/ILS/trunk@5789 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../staff_client/server/cat/copy_browser.js | 39 +++++++++++++++++++ .../staff_client/server/cat/copy_browser.xul | 3 ++ Open-ILS/xul/staff_client/server/cat/util.js | 35 ++++++++++++++++- .../staff_client/server/circ/copy_status.js | 20 ++++++++++ .../staff_client/server/circ/copy_status.xul | 1 + .../server/circ/copy_status_overlay.xul | 2 + 6 files changed, 99 insertions(+), 1 deletion(-) 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 b8aea5da37..caf89c5459 100644 --- a/Open-ILS/xul/staff_client/server/cat/copy_browser.js +++ b/Open-ILS/xul/staff_client/server/cat/copy_browser.js @@ -238,6 +238,42 @@ cat.copy_browser.prototype = { } } ], + 'cmd_replace_barcode' : [ + ['command'], + function() { + try { + JSAN.use('util.functional'); + + var list = util.functional.filter_list( + obj.sel_list, + function (o) { + return o.split(/_/)[0] == 'acp'; + } + ); + + list = util.functional.map_list( + list, + function (o) { + return obj.map_acp[ o ].barcode(); + } + ); + + JSAN.use('cat.util'); + for (var i = 0; i < list.length; i++) { + try { + cat.util.replace_barcode(list[i]); + } catch(E) { + obj.error.standard_unexpected_error_alert('Barcode ' +list[i] + ' not likely replaced.',E); + } + } + obj.refresh_list(); + + } catch(E) { + obj.error.standard_unexpected_error_alert('copy browser -> replace barcode',E); + obj.refresh_list(); + } + } + ], 'cmd_edit_items' : [ ['command'], function() { @@ -280,6 +316,7 @@ cat.copy_browser.prototype = { } JSAN.use('cat.util'); cat.util.spawn_copy_editor(list,edit); + obj.refresh_list(); } catch(E) { obj.error.standard_unexpected_error_alert('Copy Browser -> Edit Items',E); @@ -1357,6 +1394,7 @@ cat.copy_browser.prototype = { obj.controller.view.cmd_add_items.setAttribute('disabled','true'); obj.controller.view.cmd_add_items_to_buckets.setAttribute('disabled','true'); obj.controller.view.cmd_edit_items.setAttribute('disabled','true'); + obj.controller.view.cmd_replace_barcode.setAttribute('disabled','true'); obj.controller.view.cmd_delete_items.setAttribute('disabled','true'); obj.controller.view.cmd_print_spine_labels.setAttribute('disabled','true'); obj.controller.view.cmd_add_volumes.setAttribute('disabled','true'); @@ -1386,6 +1424,7 @@ cat.copy_browser.prototype = { obj.controller.view.sel_mark_items_missing.setAttribute('disabled','false'); obj.controller.view.cmd_add_items_to_buckets.setAttribute('disabled','false'); obj.controller.view.cmd_edit_items.setAttribute('disabled','false'); + obj.controller.view.cmd_replace_barcode.setAttribute('disabled','false'); obj.controller.view.cmd_delete_items.setAttribute('disabled','false'); obj.controller.view.cmd_print_spine_labels.setAttribute('disabled','false'); obj.controller.view.cmd_transfer_items.setAttribute('disabled','false'); diff --git a/Open-ILS/xul/staff_client/server/cat/copy_browser.xul b/Open-ILS/xul/staff_client/server/cat/copy_browser.xul index 8ee92c7809..f6c9d4c297 100644 --- a/Open-ILS/xul/staff_client/server/cat/copy_browser.xul +++ b/Open-ILS/xul/staff_client/server/cat/copy_browser.xul @@ -78,6 +78,7 @@ + @@ -100,6 +101,7 @@ + @@ -137,6 +139,7 @@ + diff --git a/Open-ILS/xul/staff_client/server/cat/util.js b/Open-ILS/xul/staff_client/server/cat/util.js index 814d724fff..a0b009d466 100644 --- a/Open-ILS/xul/staff_client/server/cat/util.js +++ b/Open-ILS/xul/staff_client/server/cat/util.js @@ -5,10 +5,43 @@ cat.util = {}; cat.util.EXPORT_OK = [ 'spawn_copy_editor', 'add_copies_to_bucket', 'show_in_opac', 'spawn_spine_editor', 'transfer_copies', - 'mark_item_missing', 'mark_item_damaged', + 'mark_item_missing', 'mark_item_damaged', 'replace_barcode', ]; cat.util.EXPORT_TAGS = { ':all' : cat.util.EXPORT_OK }; +cat.util.replace_barcode = function(old_bc) { + try { + JSAN.use('util.network'); + var network = new util.network(); + + if (!old_bc) old_bc = window.prompt('Enter original barcode for the copy:','','Replace Barcode'); + if (!old_bc) return; + + var copy = network.simple_request('FM_ACP_RETRIEVE_VIA_BARCODE',[ old_bc ]); + if (typeof copy.ilsevent != 'undefined') throw(copy); + if (!copy) throw(copy); + + // Why did I want to do this twice? Because this copy is more fleshed? + copy = network.simple_request('FM_ACP_RETRIEVE',[ copy.id() ]); + if (typeof copy.ilsevent != 'undefined') throw(copy); + if (!copy) throw(copy); + + var new_bc = window.prompt('Enter the replacement barcode for the copy with barcode ' + old_bc + ':','','Replace Barcode'); + + var test = network.simple_request('FM_ACP_RETRIEVE_VIA_BARCODE',[ ses(), new_bc ]); + if (typeof test.ilsevent == 'undefined') { + alert('Rename aborted. Another copy has that barcode'); + return; + } + copy.barcode(new_bc); copy.ischanged('1'); + var r = network.simple_request('FM_ACP_FLESHED_BATCH_UPDATE', [ ses(), [ copy ] ]); + if (typeof r.ilsevent != 'undefined') { if (r.ilsevent != 0) throw(r); } + } catch(E) { + JSAN.use('util.error'); var error = new util.error(); + error.standard_unexpected_error_alert('Rename did not likely occur.',E); + } +} + cat.util.transfer_copies = function(params) { JSAN.use('util.error'); var error = new util.error(); JSAN.use('OpenILS.data'); var data = new OpenILS.data(); 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 f4a7d1b098..7291cb0945 100644 --- a/Open-ILS/xul/staff_client/server/circ/copy_status.js +++ b/Open-ILS/xul/staff_client/server/circ/copy_status.js @@ -44,6 +44,7 @@ circ.copy_status.prototype = { obj.error.sdump('D_TRACE','circ/copy_status: selection list = ' + js2JSON(obj.selection_list) ); if (obj.selection_list.length == 0) { obj.controller.view.sel_checkin.setAttribute('disabled','true'); + obj.controller.view.cmd_replace_barcode.setAttribute('disabled','true'); obj.controller.view.sel_edit.setAttribute('disabled','true'); obj.controller.view.sel_opac.setAttribute('disabled','true'); obj.controller.view.sel_bucket.setAttribute('disabled','true'); @@ -56,6 +57,7 @@ circ.copy_status.prototype = { obj.controller.view.sel_clip.setAttribute('disabled','true'); } else { obj.controller.view.sel_checkin.setAttribute('disabled','false'); + obj.controller.view.cmd_replace_barcode.setAttribute('disabled','false'); obj.controller.view.sel_edit.setAttribute('disabled','false'); obj.controller.view.sel_opac.setAttribute('disabled','false'); obj.controller.view.sel_patron.setAttribute('disabled','false'); @@ -97,6 +99,24 @@ circ.copy_status.prototype = { } } ], + 'cmd_replace_barcode' : [ + ['command'], + function() { + try { + JSAN.use('cat.util'); + for (var i = 0; i < obj.selection_list.length; i++) { + try { + var barcode = obj.selection_list[i].barcode; + cat.util.replace_barcode( barcode ); + } catch(E) { + obj.error.standard_unexpected_error_alert('Barcode ' + barcode + ' was not likely replaced.',E); + } + } + } catch(E) { + obj.error.standard_unexpected_error_alert('Barcode replacements did not likely happen.',E); + } + } + ], 'sel_edit' : [ ['command'], function() { diff --git a/Open-ILS/xul/staff_client/server/circ/copy_status.xul b/Open-ILS/xul/staff_client/server/circ/copy_status.xul index 43c592f838..171aff1f9e 100644 --- a/Open-ILS/xul/staff_client/server/circ/copy_status.xul +++ b/Open-ILS/xul/staff_client/server/circ/copy_status.xul @@ -91,6 +91,7 @@ + diff --git a/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul b/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul index bcbc4c1c70..2679a66fff 100644 --- a/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul +++ b/Open-ILS/xul/staff_client/server/circ/copy_status_overlay.xul @@ -20,6 +20,7 @@ + @@ -67,6 +68,7 @@ + -- 2.43.2