From 0512432770a4bec4526a7094d79b14a53eb13c71 Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Thu, 19 May 2011 22:25:16 -0400 Subject: [PATCH] CN prefix/suffix columns in xul-based hold interfaces Signed-off-by: Jason Etheridge --- Open-ILS/xul/staff_client/server/circ/util.js | 79 +++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 4 deletions(-) diff --git a/Open-ILS/xul/staff_client/server/circ/util.js b/Open-ILS/xul/staff_client/server/circ/util.js index 32f3a6082d..f3c1e04da4 100644 --- a/Open-ILS/xul/staff_client/server/circ/util.js +++ b/Open-ILS/xul/staff_client/server/circ/util.js @@ -2217,15 +2217,86 @@ circ.util.hold_columns = function(modify,params) { 'editable' : false, 'render' : function(my) { return my.patron_first_given_name ? my.patron_first_given_name : ""; } }, { - 'persist' : 'hidden width ordinal', 'id' : 'callnumber', - 'label' : document.getElementById('circStrings').getString('staff.circ.utils.callnumber'), + 'fm_class' : 'acp', + 'label' : document.getElementById('commonStrings').getString('staff.acp_label_call_number'), 'flex' : 1, 'primary' : false, 'hidden' : true, - 'editable' : false, 'render' : function(my) { return my.acn.label(); } + 'editable' : false, 'render' : function(my,scratch_data) { + var acn_id; + if (my.acn) { + if (typeof my.acn == 'object') { + acn_id = my.acn.id(); + } else { + acn_id = my.acn; + } + } else if (my.acp) { + if (typeof my.acp.call_number() == 'object') { + acn_id = my.acp.call_number().id(); + } else { + acn_id = my.acp.call_number(); + } + } + if (!acn_id && acn_id != 0) { + return ''; + } else if (acn_id == -1) { + return document.getElementById('circStrings').getString('staff.circ.utils.not_cataloged'); + } else if (acn_id == -2) { + return document.getElementById('circStrings').getString('staff.circ.utils.retrieving'); + } else { + if (!my.acn) { + if (typeof scratch_data['acn_map'] == 'undefined') { + scratch_data['acn_map'] = {}; + } + if (typeof scratch_data['acn_map'][ acn_id ] == 'undefined') { + var x = network.simple_request("FM_ACN_RETRIEVE.authoritative",[ acn_id ]); + if (x.ilsevent) { + return document.getElementById('circStrings').getString('staff.circ.utils.not_cataloged'); + } else { + my.acn = x; + scratch_data['acn_map'][ acn_id ] = my.acn; + } + } else { + my.acn = scratch_data['acn_map'][ acn_id ]; + } + } + return my.acn.label(); + } + }, + 'persist' : 'hidden width ordinal' }, - { + { + 'id' : 'prefix', + 'fm_class' : 'acn', + 'label' : document.getElementById('circStrings').getString('staff.circ.utils.prefix'), + 'flex' : 1, + 'primary' : false, + 'hidden' : true, + 'editable' : false, 'render' : function(my) { + if (typeof my.acn == 'undefined') return ''; + return (typeof my.acn.prefix() == 'object') + ? my.acn.prefix().label() + : data.lookup("acnp", my.acn.prefix() ).label(); + }, + 'persist' : 'hidden width ordinal' + }, + { + 'id' : 'suffix', + 'fm_class' : 'acn', + 'label' : document.getElementById('circStrings').getString('staff.circ.utils.suffix'), + 'flex' : 1, + 'primary' : false, + 'hidden' : true, + 'editable' : false, 'render' : function(my) { + if (typeof my.acn == 'undefined') return ''; + return (typeof my.acn.suffix() == 'object') + ? my.acn.suffix().label() + : data.lookup("acns", my.acn.suffix() ).label(); + }, + 'persist' : 'hidden width ordinal' + }, + { 'persist' : 'hidden width ordinal', 'id' : 'total_holds', 'label' : document.getElementById('circStrings').getString('staff.circ.utils.total_holds'), -- 2.11.0