From: phasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4> Date: Tue, 9 Feb 2010 22:11:51 +0000 (+0000) Subject: entry points for Transfer Title Holds functionality X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=0386fe6ad8ac659df9d596c96a796ad8f6eb8ea1;p=contrib%2FConifer.git entry points for Transfer Title Holds functionality git-svn-id: svn://svn.open-ils.org/ILS/trunk@15487 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/web/opac/locale/en-US/lang.dtd b/Open-ILS/web/opac/locale/en-US/lang.dtd index e977178db8..64df98f60d 100644 --- a/Open-ILS/web/opac/locale/en-US/lang.dtd +++ b/Open-ILS/web/opac/locale/en-US/lang.dtd @@ -271,6 +271,10 @@ <!ENTITY staff.cat.opac.marc_view.label "MARC View"> <!ENTITY staff.cat.opac.mark_for_overlay.accesskey "M"> <!ENTITY staff.cat.opac.mark_for_overlay.label "Mark for Overlay"> +<!ENTITY staff.cat.opac.mark_for_hold_transfer.accesskey ""> +<!ENTITY staff.cat.opac.mark_for_hold_transfer.label "Mark as Title Hold Transfer Destination"> +<!ENTITY staff.cat.opac.transfer_title_holds.accesskey ""> +<!ENTITY staff.cat.opac.transfer_title_holds.label "Transfer Title Holds"> <!ENTITY staff.cat.opac.delete_record.accesskey "D"> <!ENTITY staff.cat.opac.delete_record.label "Delete Record"> <!ENTITY staff.cat.opac.undelete_record.accesskey "U"> @@ -2166,6 +2170,8 @@ <!ENTITY staff.circ.holds.edit_desire_mint_condition.accesskey "Q"> <!ENTITY staff.circ.holds.set_top_of_queue "Set Top of Queue"> <!ENTITY staff.circ.holds.set_top_of_queue.accesskey "Q"> +<!ENTITY staff.circ.holds.title_transfer.label "Transfer to Marked Title"> +<!ENTITY staff.circ.holds.title_transfer.accesskey ""> <!ENTITY staff.circ.holds.mark_item_damaged "Mark Item Damaged"> <!ENTITY staff.circ.holds.mark_item_damaged.accesskey "D"> <!ENTITY staff.circ.holds.mark_item_missing "Mark Item Missing"> @@ -2438,6 +2444,8 @@ <!ENTITY staff.cat.record_buckets_overlay.menuitem.save_columns2.label "Save List Configuration"> <!ENTITY staff.cat.record_buckets_overlay.box.label "Batch:"> <!ENTITY staff.cat.record_buckets_overlay.sel_opac.label "Show All in Catalog"> +<!ENTITY staff.cat.record_buckets_overlay.transfer_title_holds.label "Transfer Title Holds"> +<!ENTITY staff.cat.record_buckets_overlay.transfer_title_holds.accesskey "Transfer Title Holds"> <!ENTITY staff.cat.record_buckets_overlay.del_records.label "Delete All Records"> <!ENTITY staff.cat.record_buckets_overlay.merge_records.label "Merge All Records"> <!ENTITY staff.cat.record_buckets_overlay.export_records.label "Export All Records"> diff --git a/Open-ILS/xul/staff_client/chrome/content/cat/opac.js b/Open-ILS/xul/staff_client/chrome/content/cat/opac.js index 3035ceb941..a2518cf197 100644 --- a/Open-ILS/xul/staff_client/chrome/content/cat/opac.js +++ b/Open-ILS/xul/staff_client/chrome/content/cat/opac.js @@ -348,11 +348,53 @@ function mark_for_overlay() { g.data.stash('marked_record_mvr'); if (g.data.marked_record_mvr) { alert(document.getElementById('offlineStrings').getFormattedString('cat.opac.record_marked_for_overlay.tcn.alert',[ g.data.marked_record_mvr.tcn() ])); + xulG.set_statusbar(1, $("offlineStrings").getFormattedString('staff.cat.z3950.marked_record_for_overlay_indicator.tcn.label',[g.data.marked_record_mvr.tcn()]) ); } else { alert(document.getElementById('offlineStrings').getFormattedString('cat.opac.record_marked_for_overlay.record_id.alert',[ g.data.marked_record ])); + xulG.set_statusbar(1, $("offlineStrings").getFormattedString('staff.cat.z3950.marked_record_for_overlay_indicator.record_id.label',[g.data.marked_record]) ); } } +function mark_for_hold_transfer() { + g.data.marked_record_for_hold_transfer = docid; + g.data.stash('marked_record_for_hold_transfer'); + var robj = g.network.simple_request('MODS_SLIM_RECORD_RETRIEVE.authoritative',[docid]); + if (typeof robj.ilsevent == 'undefined') { + g.data.marked_record_for_hold_transfer_mvr = robj; + } else { + g.data.marked_record_for_hold_transfer_mvr = null; + g.error.standard_unexpected_error_alert('in mark_for_hold_transfer',robj); + } + g.data.stash('marked_record_for_hold_transfer_mvr'); + if (g.data.marked_record_mvr) { + var m = $("offlineStrings").getFormattedString('staff.cat.opac.marked_record_for_hold_transfer_indicator.tcn.label',[g.data.marked_record_for_hold_transfer_mvr.tcn()]); + alert(m); xulG.set_statusbar(1, m ); + } else { + var m = $("offlineStrings").getFormattedString('staff.cat.opac.marked_record_for_hold_transfer_indicator.record_id.label',[g.data.marked_record_for_hold_transfer]); + alert(m); xulG.set_statusbar(1, m ); + } +} + +function transfer_title_holds() { + g.data.stash_retrieve(); + var target = g.data.marked_record_for_hold_transfer; + if (!target) { + var m = $("offlineStrings").getString('staff.cat.opac.title_for_hold_transfer.destination_needed.label'); + alert(m); + return; + } + var robj = g.network.simple_request('TRANSFER_TITLE_HOLDS',[ ses(), target, [ docid ] ]); + if (robj == 1) { + var m = $("offlineStrings").getString('staff.cat.opac.title_for_hold_transfer.success.label'); + alert(m); + } else { + var m = $("offlineStrings").getString('staff.cat.opac.title_for_hold_transfer.failure.label'); + alert(m); + } + hold_browser_reset = true; + if (g.view == 'hold_browser') { set_hold_browser(); }; +} + function delete_record() { if (g.error.yns_alert( document.getElementById('offlineStrings').getFormattedString('cat.opac.delete_record.confirm', [docid]), diff --git a/Open-ILS/xul/staff_client/chrome/content/cat/opac.xul b/Open-ILS/xul/staff_client/chrome/content/cat/opac.xul index d03f7a64f9..7f0fdbb035 100644 --- a/Open-ILS/xul/staff_client/chrome/content/cat/opac.xul +++ b/Open-ILS/xul/staff_client/chrome/content/cat/opac.xul @@ -56,6 +56,8 @@ <menuitem label="&staff.cat.opac.undelete_record.label;" accesskey="&staff.cat.opac.undelete_record.accesskey;" id="undelete_record" oncommand="undelete_record();"/> <menuseparator/> <menuitem label="&staff.cat.copy_browser.holdings_maintenance.cmd_add_volumes.label;" accesskey="&staff.cat.copy_browser.holdings_maintenance.cmd_add_volumes.accesskey;" id="add_volumes" oncommand="add_volumes();"/> + <menuitem label="&staff.cat.opac.mark_for_hold_transfer.label;" accesskey="&staff.cat.opac.mark_for_hold_transfer.accesskey;" id="mark_for_hold_transfer" oncommand="mark_for_hold_transfer();"/> + <menuitem label="&staff.cat.opac.transfer_title_holds.label;" accesskey="&staff.cat.opac.transfer_title_holds.accesskey;" id="transfer_title_holds" oncommand="transfer_title_holds();"/> <menuseparator/> <menuitem label="&staff.cat.opac.bib_in_new_tab.label;" id="bib_in_new_tab" oncommand="bib_in_new_tab();"/> <menuitem label="&staff.cat.opac.remove_me.label;" id="remove_me" oncommand="remove_me();"/> diff --git a/Open-ILS/xul/staff_client/chrome/content/main/constants.js b/Open-ILS/xul/staff_client/chrome/content/main/constants.js index 4e541a2c90..33f4a81411 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/constants.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/constants.js @@ -123,6 +123,7 @@ const api = { 'FM_AHR_UPDATE_BATCH' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold.update.batch' }, 'FM_AHR_RESET' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold.reset' }, 'FM_AHR_STATUS' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold.status.retrieve' }, + 'TRANSFER_TITLE_HOLDS' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.hold.change_title' }, 'FM_AHRCC_PCRUD_SEARCH' : { 'app' : 'open-ils.pcrud', 'method' : 'open-ils.pcrud.search.ahrcc.atomic', 'secure' : false }, 'FM_AIHU_CREATE' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.in_house_use.create' }, 'FM_ANCC_RETRIEVE_VIA_ID' : { 'app' : 'open-ils.circ', 'method' : 'open-ils.circ.non_cataloged_circulation.retrieve' }, diff --git a/Open-ILS/xul/staff_client/chrome/content/main/menu.js b/Open-ILS/xul/staff_client/chrome/content/main/menu.js index e34b18ce34..9085913fca 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu.js +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu.js @@ -1339,6 +1339,10 @@ main.menu.prototype = { content_params.open_chrome_window = function(a,b,c) { return xulG.window.open(a,b,c); }; content_params.url_prefix = function(url) { return obj.url_prefix(url); }; content_params.network_meter = obj.network_meter; + content_params.set_statusbar = function(slot,text) { + var e = document.getElementById('statusbarpanel'+slot); + if (e) { e.setAttribute('label',text); } + }; content_params.chrome_xulG = xulG; if (params && params.tab_name) content_params.set_tab_name( params.tab_name ); diff --git a/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_overlay.xul b/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_overlay.xul index 4723b60505..795d6d2971 100644 --- a/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_overlay.xul +++ b/Open-ILS/xul/staff_client/chrome/content/main/menu_frame_overlay.xul @@ -41,6 +41,11 @@ </tabbox> <statusbar> <statusbarpanel /> + <statusbarpanel id="statusbarpanel1"/> + <statusbarpanel id="statusbarpanel2"/> + <statusbarpanel id="statusbarpanel3"/> + <statusbarpanel id="statusbarpanel4"/> + <statusbarpanel id="statusbarpanel5"/> <spacer flex="1" /> <progressmeter id="network_progress" flex="1" mode="determined" value="0" tooltip="network_progress_tip"/> <statusbarpanel /> diff --git a/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties b/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties index fd9b5b9c45..42df113f93 100644 --- a/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties +++ b/Open-ILS/xul/staff_client/chrome/locale/en-US/offline.properties @@ -250,3 +250,11 @@ staff.cat.util.copy_editor.edit=Edit staff.cat.util.copy_editor.view=View staff.circ.copy_status.add_volumes.perm_failure=You do not have permission to add volumes to the workstation library. staff.circ.copy_status.add_volumes.title=Add Volume/Item for Record # %1$s +staff.cat.z3950.marked_record_for_overlay_indicator.tcn.label=Record with TCN %1$s marked for overlay. +staff.cat.z3950.marked_record_for_overlay_indicator.record_id.label=Record with ID %1$s marked for overlay. +staff.cat.opac.marked_record_for_hold_transfer_indicator.tcn.label=Record with TCN %1$s marked for title hold transfer. +staff.cat.opac.marked_record_for_hold_transfer_indicator.record_id.label=Record with ID %1$s marked for title hold transfer. +staff.cat.opac.title_for_hold_transfer.destination_needed.label=Need to mark a record as a Title Hold Transfer Destination first. +staff.cat.opac.title_for_hold_transfer.success.label=Holds transferred. +staff.cat.opac.title_for_hold_transfer.failure.label=Holds not transferred. + diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets.js b/Open-ILS/xul/staff_client/server/cat/record_buckets.js index 21abc2aaef..814f8af7bc 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets.js +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets.js @@ -341,6 +341,7 @@ cat.record_buckets.prototype = { obj.controller.view.cmd_merge_records.setAttribute('disabled','true'); obj.controller.view.cmd_delete_records.setAttribute('disabled','true'); obj.controller.view.cmd_sel_opac.setAttribute('disabled','true'); + obj.controller.view.cmd_transfer_title_holds.setAttribute('disabled','true'); obj.controller.view.record_buckets_list_actions.disabled = true; var bucket = obj.network.simple_request( 'BUCKET_FLESH', @@ -361,6 +362,7 @@ cat.record_buckets.prototype = { obj.controller.view.cmd_merge_records.setAttribute('disabled','false'); obj.controller.view.cmd_delete_records.setAttribute('disabled','false'); obj.controller.view.cmd_sel_opac.setAttribute('disabled','false'); + obj.controller.view.cmd_transfer_title_holds.setAttribute('disabled','false'); obj.controller.view.record_buckets_list_actions.disabled = false; var x = document.getElementById('info_box'); @@ -550,6 +552,7 @@ cat.record_buckets.prototype = { obj.controller.view.cmd_merge_records.setAttribute('disabled','true'); obj.controller.view.cmd_delete_records.setAttribute('disabled','true'); obj.controller.view.cmd_sel_opac.setAttribute('disabled','true'); + obj.controller.view.cmd_transfer_title_holds.setAttribute('disabled','true'); obj.controller.view.record_buckets_list_actions.disabled = true; obj.controller.render('record_buckets_menulist_placeholder'); setTimeout( @@ -846,6 +849,26 @@ cat.record_buckets.prototype = { } } ], + 'cmd_transfer_title_holds' : [ + ['command'], + function() { + try { + obj.list2.select_all(); + JSAN.use('util.functional'); + var docids = util.functional.map_list( + obj.list2.dump_retrieve_ids(), + function (o) { + return JSON2js(o).docid; // docid + } + ); + JSAN.use('cat.util'); + cat.util.transfer_title_holds(docids); + } catch(E) { + alert('Error in record_buckets.js, cmd_transfer_title_holds: ' + E); + } + } + ], + 'record_buckets_export_records' : [ ['render'], function(){} ], 'record_buckets_list_actions' : [ ['render'], function(){} ] } diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets.xul b/Open-ILS/xul/staff_client/server/cat/record_buckets.xul index 6d5098507e..18454f211b 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets.xul +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets.xul @@ -86,49 +86,7 @@ <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale' -->/circ.properties"/> <messagecatalog id="catStrings" src="/xul/server/locale/<!--#echo var='locale' -->/cat.properties"/> - <commandset id="record_buckets_cmds"> - <command id="sel_clip0" disabled="true"/> - <command id="sel_clip1" disabled="true"/> - <command id="sel_clip2" disabled="true"/> - <command id="save_columns0" /> - <command id="save_columns1" /> - <command id="save_columns2" /> - - <command id="cmd_record_query_csv_to_printer" /> - <command id="cmd_record_query_csv_to_clipboard" /> - <command id="cmd_record_query_csv_to_file" /> - - <command id="cmd_pending_buckets_csv_to_printer" /> - <command id="cmd_pending_buckets_csv_to_clipboard" /> - <command id="cmd_pending_buckets_csv_to_file" /> - - <command id="cmd_record_buckets_new_bucket" /> - <command id="cmd_record_buckets_delete_bucket" disabled="true"/> - <command id="cmd_record_buckets_refresh" disabled="true"/> - - <command id="cmd_record_buckets_delete_item" /> - <command id="cmd_record_buckets_to_pending_buckets" /> - - <command id="cmd_record_buckets_csv_to_printer" /> - <command id="cmd_record_buckets_csv_to_clipboard" /> - <command id="cmd_record_buckets_csv_to_file" /> - - <command id="cmd_add_all_query_to_pending" /> - <command id="cmd_add_sel_query_to_pending" /> - - <command id="cmd_add_all_pending_to_record_bucket" /> - <command id="cmd_add_sel_pending_to_record_bucket" /> - - <command id="cmd_merge_records" disabled="true" /> - <command id="cmd_export_records_usmarc" /> - <command id="cmd_export_records_unimarc" /> - <command id="cmd_export_records_xml" /> - <command id="cmd_export_records_bre" /> - <command id="cmd_delete_records" disabled="true" /> - <command id="cmd_sel_opac" disabled="true" /> - - <command id="cmd_submit_query" /> - </commandset> + <commandset id="record_buckets_cmds" /> <box id="record_buckets_main" /> diff --git a/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul b/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul index 22d966d625..3f564f663d 100644 --- a/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul +++ b/Open-ILS/xul/staff_client/server/cat/record_buckets_overlay.xul @@ -10,7 +10,54 @@ <messagecatalog id="catStrings" src="/xul/server/locale/<!--#echo var='locale'-->/cat.properties" /> <messagecatalog id="circStrings" src="/xul/server/locale/<!--#echo var='locale'-->/circ.properties" /> -<commandset id="record_buckets_cmds" /> +<commandset id="record_buckets_cmds"> + <command id="sel_clip0" disabled="true"/> + <command id="sel_clip1" disabled="true"/> + <command id="sel_clip2" disabled="true"/> + <command id="save_columns0" /> + <command id="save_columns1" /> + <command id="save_columns2" /> + + <command id="cmd_record_query_csv_to_printer" /> + <command id="cmd_record_query_csv_to_clipboard" /> + <command id="cmd_record_query_csv_to_file" /> + + <command id="cmd_pending_buckets_csv_to_printer" /> + <command id="cmd_pending_buckets_csv_to_clipboard" /> + <command id="cmd_pending_buckets_csv_to_file" /> + + <command id="cmd_record_buckets_new_bucket" /> + <command id="cmd_record_buckets_delete_bucket" disabled="true"/> + <command id="cmd_record_buckets_refresh" disabled="true"/> + + <command id="cmd_record_buckets_delete_item" /> + <command id="cmd_record_buckets_to_pending_buckets" /> + + <command id="cmd_record_buckets_csv_to_printer" /> + <command id="cmd_record_buckets_csv_to_clipboard" /> + <command id="cmd_record_buckets_csv_to_file" /> + + <command id="cmd_add_all_query_to_pending" /> + <command id="cmd_add_sel_query_to_pending" /> + + <command id="cmd_add_all_pending_to_record_bucket" /> + <command id="cmd_add_sel_pending_to_record_bucket" /> + + <command id="cmd_merge_records" disabled="true" /> + <command id="cmd_transfer_title_holds" + label="&staff.cat.record_buckets_overlay.transfer_title_holds.label;" + accesskey="&staff.cat.record_buckets_overlay.transfer_title_holds.accesskey;" + disabled="true" /> + <command id="cmd_export_records_usmarc" /> + <command id="cmd_export_records_unimarc" /> + <command id="cmd_export_records_xml" /> + <command id="cmd_export_records_bre" /> + <command id="cmd_delete_records" disabled="true" /> + <command id="cmd_sel_opac" disabled="true" /> + + <command id="cmd_submit_query" /> +</commandset> + <box id="record_buckets_main" flex="1" orient="vertical" class="my_overflow"> <vbox id="cmvb1" flex="1"/> @@ -166,6 +213,7 @@ <hbox style="background: grey"> <vbox><spacer flex="1"/><label value="&staff.cat.record_buckets_overlay.box.label;" style="font-weight: bold"/><spacer flex="1"/></vbox> <button command="cmd_sel_opac" label="&staff.cat.record_buckets_overlay.sel_opac.label;" accesskey=""/> + <button command="cmd_transfer_title_holds" /> <button command="cmd_delete_records" label="&staff.cat.record_buckets_overlay.del_records.label;"/> <button command="cmd_merge_records" label="&staff.cat.record_buckets_overlay.merge_records.label;"/> <button id="record_buckets_export_records" label="&staff.cat.record_buckets_overlay.export_records.label;" type="menu" allowevents="true" disabled="true"> diff --git a/Open-ILS/xul/staff_client/server/cat/util.js b/Open-ILS/xul/staff_client/server/cat/util.js index 4fb5e10fdc..1e76954b43 100644 --- a/Open-ILS/xul/staff_client/server/cat/util.js +++ b/Open-ILS/xul/staff_client/server/cat/util.js @@ -7,7 +7,8 @@ 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', 'replace_barcode', 'fast_item_add' + 'transfer_title_holds', 'mark_item_missing', 'mark_item_damaged', 'replace_barcode', 'fast_item_add', + 'make_bookable', 'edit_new_brsrc', 'edit_new_bresv' ]; cat.util.EXPORT_TAGS = { ':all' : cat.util.EXPORT_OK }; @@ -89,6 +90,30 @@ cat.util.replace_barcode = function(old_bc) { } } +cat.util.transfer_title_holds = function(old_targets) { + JSAN.use('OpenILS.data'); var data = new OpenILS.data(); + JSAN.use('util.network'); var network = new util.network(); + try { + data.stash_retrieve(); + var target = data.marked_record_for_hold_transfer; + if (!target) { + var m = $("catStrings").getString('staff.cat.opac.title_for_hold_transfer.destination_needed.label'); + alert(m); + return; + } + var robj = network.simple_request('TRANSFER_TITLE_HOLDS',[ ses(), target, old_targets ]); + if (robj == 1) { + var m = $("catStrings").getString('staff.cat.opac.title_for_hold_transfer.success.label'); + alert(m); + } else { + var m = $("catStrings").getString('staff.cat.opac.title_for_hold_transfer.failure.label'); + alert(m); + } + } catch(E) { + alert('Error in cat.util.transfer_title.holds(): ' + 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/locale/en-US/cat.properties b/Open-ILS/xul/staff_client/server/locale/en-US/cat.properties index 9e4da1d581..473afa8864 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 @@ -253,6 +253,9 @@ staff.cat.opac.set_marc_edit.alert=Record successfully saved. staff.cat.opac.set_marc_edit.std_unexpected_error=Record not likely updated. staff.cat.opac.refresh.function_not_implemented.alert=Not yet implemented. Work around: Choose Duplicate in New Tab option staff.cat.opac.set_tab_name=Record: %1$s +staff.cat.opac.title_for_hold_transfer.destination_needed.label=Need to mark a record as a Title Hold Transfer Destination first. +staff.cat.opac.title_for_hold_transfer.success.label=Holds transferred. +staff.cat.opac.title_for_hold_transfer.failure.label=Holds not transferred. staff.cat.record_buckets.tab_name=Record Buckets staff.cat.record_buckets.save_file_as=Save File As staff.cat.record_buckets.export_records.alert=File not downloaded. diff --git a/Open-ILS/xul/staff_client/server/patron/holds.js b/Open-ILS/xul/staff_client/server/patron/holds.js index cca056b15a..51586032ef 100644 --- a/Open-ILS/xul/staff_client/server/patron/holds.js +++ b/Open-ILS/xul/staff_client/server/patron/holds.js @@ -1106,6 +1106,41 @@ patron.holds.prototype = { } } ], + 'cmd_holds_title_transfer' : [ + ['command'], + function() { + try { + var targets = []; + for (var i = 0; i < obj.retrieve_ids.length; i++) { + var htarget = obj.retrieve_ids[i].target; + var htype = obj.retrieve_ids[i].type; + switch(htype) { + case 'M' : + continue; // not supported + break; + case 'T' : + targets.push( htarget ); + break; + case 'V' : + continue; // not supported + break; + case 'C' : + continue; // not supported + break; + default: + continue; // not supported + break; + } + } + JSAN.use('cat.util'); + cat.util.transfer_title_holds(targets); + obj.clear_and_retrieve(); + } catch(E) { + obj.error.standard_unexpected_error_alert('',E); + } + } + ], + 'fetch_more' : [ ['command'], function() { diff --git a/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul b/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul index 967d63d845..0c8fac22db 100644 --- a/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul +++ b/Open-ILS/xul/staff_client/server/patron/holds_overlay.xul @@ -36,6 +36,9 @@ <command id="cmd_holds_retarget"/> <command id="cmd_holds_cancel" /> <command id="cmd_holds_uncancel" /> + <command id="cmd_holds_title_transfer" + label="&staff.circ.holds.title_transfer.label;" + accesskey="&staff.circ.holds.title_transfer.accesskey;" /> <command id="cmd_search_opac" /> <command id="save_columns" /> <command id="cmd_alt_view" /> @@ -65,6 +68,7 @@ <menuitem label="&staff.circ.holds.edit_hold_range;" class="edit_hold_range" command="cmd_holds_edit_selection_depth" accesskey="&staff.circ.holds.edit_hold_range.accesskey;"/> <menuitem label="&staff.circ.holds.edit_hold_focus;" class="edit_hold_focus" command="cmd_broken" accesskey="&staff.circ.holds.edit_hold_focus.accesskey;"/> <menuitem label="&staff.circ.holds.set_top_of_queue;" command="cmd_holds_cut_in_line" accesskey="&staff.circ.holds.set_top_of_queue.accesskey;"/> + <menuitem command="cmd_holds_title_transfer" /> <menuseparator /> <menuitem command="sel_mark_items_damaged" label="&staff.circ.holds.mark_item_damaged;" accesskey="&staff.circ.holds.mark_item_damaged.accesskey;"/> <menuitem command="sel_mark_items_missing" label="&staff.circ.holds.mark_item_missing;" accesskey="&staff.circ.holds.mark_item_missing.accesskey;"/> @@ -143,6 +147,7 @@ <menuitem label="&staff.circ.holds.edit_hold_range;" class="edit_hold_range" command="cmd_holds_edit_selection_depth" accesskey="&staff.circ.holds.edit_hold_range.accesskey;"/> <menuitem label="&staff.circ.holds.edit_hold_focus;" class="edit_hold_focus" command="cmd_broken" accesskey="&staff.circ.holds.edit_hold_focus.accesskey;"/> <menuitem label="&staff.circ.holds.set_top_of_queue;" command="cmd_holds_cut_in_line" accesskey="&staff.circ.holds.set_top_of_queue.accesskey;"/> + <menuitem command="cmd_holds_title_transfer" /> <menuseparator /> <menuitem command="sel_mark_items_damaged" label="&staff.circ.holds.mark_item_damaged;" accesskey="&staff.circ.holds.mark_item_damaged.accesskey;"/> <menuitem command="sel_mark_items_missing" label="&staff.circ.holds.mark_item_missing;" accesskey="&staff.circ.holds.mark_item_missing.accesskey;"/>