From: Jason Etheridge Date: Mon, 7 Mar 2011 13:35:43 +0000 (-0500) Subject: incorporate call number prefixes X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=564d29a565b4c57e2ad4a9d35d00497c6e9d7b55;p=evergreen%2Fequinox.git incorporate call number prefixes --- diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js index 202024e96e..4ac022f98f 100644 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js +++ b/Open-ILS/xul/staff_client/chrome/content/OpenILS/data.js @@ -845,7 +845,6 @@ OpenILS.data.prototype = { } ); - this.chain.push( function() { var f = gen_fm_retrieval_func( @@ -870,6 +869,50 @@ OpenILS.data.prototype = { this.chain.push( function() { var f = gen_fm_retrieval_func( + 'acnp', + [ + api.FM_ACNP_RETRIEVE_VIA_PCRUD.app, + api.FM_ACNP_RETRIEVE_VIA_PCRUD.method, + [ obj.session.key, {"owning_lib":{"=":obj.list.au[0].ws_ou()}}, {"order_by":{"acnp":"label_sortkey"}} ], + false + ] + ); + try { + f(); + obj.list['acnp_for_lib_'+obj.list.au[0].ws_ou()] = obj.list.acnp; + } catch(E) { + var error = 'Error: ' + js2JSON(E); + obj.error.sdump('D_ERROR',error); + throw(E); + } + } + ); + + this.chain.push( + function() { + var f = gen_fm_retrieval_func( + 'acns', + [ + api.FM_ACNS_RETRIEVE_VIA_PCRUD.app, + api.FM_ACNS_RETRIEVE_VIA_PCRUD.method, + [ obj.session.key, {"owning_lib":{"=":obj.list.au[0].ws_ou()}}, {"order_by":{"acns":"label_sortkey"}} ], + false + ] + ); + try { + f(); + obj.list['acns_for_lib_'+obj.list.au[0].ws_ou()] = obj.list.acns; + } catch(E) { + var error = 'Error: ' + js2JSON(E); + obj.error.sdump('D_ERROR',error); + throw(E); + } + } + ); + + this.chain.push( + function() { + var f = gen_fm_retrieval_func( 'cbt', [ api.FM_CBT_RETRIEVE.app, diff --git a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js index e9d40c39d8..05498752e7 100644 --- a/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js +++ b/Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js @@ -349,7 +349,8 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) { classification_column_box.appendChild(classification_column_menulist); /**** PREFIX COLUMN revisited ****/ - var prefix_column_menulist = document.createElement('menulist'); + var prefix_column_menulist = g.render_prefix_menu(call_number_column_textbox); + prefix_column_menulist.addEventListener( 'change', g.gather_copies_soon, false); prefix_column_box.appendChild(prefix_column_menulist); /**** SUFFIX COLUMN ****/ @@ -675,6 +676,7 @@ g.gather_copies = function() { if ( nl[i].getAttribute('rel_vert_pos') == rel_vert_pos_call_number ) { var ou_id = nl[i].getAttribute('ou_id'); var acnc_id = nl[i].getAttribute('acnc_id'); + var acnp_id = nl[i].getAttribute('acnp_id'); var callnumber = nl[i].value; if (typeof volumes_hash[ou_id] == 'undefined') { volumes_hash[ou_id] = {} @@ -682,7 +684,8 @@ g.gather_copies = function() { if (typeof volumes_hash[ou_id][callnumber] == 'undefined') { volumes_hash[ou_id][callnumber] = { 'call_number_data' : { - 'acnc_id' : acnc_id + 'acnc_id' : acnc_id, + 'acnp_id' : acnp_id }, 'barcode_data' : [] } @@ -918,6 +921,61 @@ g.render_class_menu = function(call_number_tb) { return ml; } +g.render_prefix_menu = function(call_number_tb) { + var ou_id = call_number_tb.getAttribute('ou_id'); + var org = g.data.hash.aou[ ou_id ]; + var menulist = document.createElement('menulist'); + var menupopup = document.createElement('menupopup'); + menulist.appendChild(menupopup); + var org_list = []; // order from top of consortium to owning lib + while(org) { + org_list.unshift(org.id()); + org = org.parent_ou(); + if (org && typeof org != 'object') { + org = g.data.hash.aou[ org ]; + } + } + for (var i = 0; i < org_list.length; i++) { + g.render_prefix_menu_items(menupopup,org_list[i]); + } + + menulist.addEventListener( + 'command', + function() { + call_number_tb.setAttribute('acnp_id',menulist.value); + }, + false + ); + return menulist; +} + +g.render_prefix_menu_items = function(menupopup,ou_id) { + if (typeof g.data.list['acnp_for_lib_'+ou_id] == 'undefined') { + g.data.list['acnp_for_lib_'+ou_id] = g.network.simple_request( + 'FM_ACNP_RETRIEVE_VIA_PCRUD', + [ ses(), {"owning_lib":{"=":ou_id}}, {"order_by":{"acnp":"label_sortkey"}} ] + ); + g.data.stash('list'); + } + for (var i = 0; i < g.data.list['acnp_for_lib_'+ou_id].length; i++) { + var my_acnp = g.data.list['acnp_for_lib_'+ou_id][i]; + var menuitem = document.createElement('menuitem'); + menupopup.appendChild(menuitem); + menuitem.setAttribute( + 'label', + my_acnp.id() == -1 ? '' : + $('catStrings').getFormattedString( + 'staff.cat.volume_copy_creator.call_number_prefix.menuentry_label', + [ + my_acnp.label(), + g.data.hash.aou[ ou_id ].shortname() + ] + ) + ); + menuitem.setAttribute('value',my_acnp.id()); + } +} + g.list_callnumbers = function(doc_id, label_class) { var cn_blob; try { 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 061993b84d..11cc53ca35 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 @@ -421,6 +421,8 @@ staff.cat.volume_copy_creator.stash_and_close.tree_err2=volume tree update 2 staff.cat.volume_copy_creator.stash_and_close.tree_err3=volume tree update 3 staff.cat.volume_copy_creator.load_prefs.err_retrieving_prefs=Error retrieving stored preferences staff.cat.volume_copy_creator.save_prefs.err_storing_prefs=Error storing preferences +# %1$s = Call Number Prefix Label, %2$s = Call Number Prefix Owning Lib Shortname +staff.cat.volume_copy_creator.call_number_prefix.menuentry_label=%2$s : %1$s staff.cat.z3950.native_catalog=Native Catalog staff.cat.z3950.obj_list_init.list_construction_error=Failure during list construction. staff.cat.z3950.results_view.label=Results View