From: Jason Etheridge Date: Fri, 4 Mar 2011 01:23:18 +0000 (-0500) Subject: add label for Barcodes & Parts, retrieve monographic parts for a bib, and supply... X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=137b95fb3195e5292bb10a88a27b5bb5c1cc702b;p=evergreen%2Fequinox.git add label for Barcodes & Parts, retrieve monographic parts for a bib, and supply a parts menu per item --- 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 3b8805e0c4..14c9deff0a 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 @@ -114,6 +114,13 @@ function my_init() { get_contentWindow(summary).xulG = { 'docid' : g.doc_id }; /***********************************************************************************************************/ + /* Fetch the monographic parts for this bib */ + + dojo.require('openils.PermaCrud'); + var pcrud = new openils.PermaCrud({'authtoken':ses()}); + g.parts = pcrud.search('bmp',{'record':g.doc_id},{'order_by': { 'bmp' : 'label_sortkey' } }); + + /***********************************************************************************************************/ /* For the call number drop down */ if (g.existing_copies.length > 0 || !g.copy_shortcut) { @@ -212,7 +219,8 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) { x.setAttribute('value', $("catStrings").getString('staff.cat.volume_copy_creator.render_callnumber_copy_count_entry.call_nums')); x.setAttribute('style','font-weight: bold'); x = document.createElement('label'); r.appendChild(x); x.setAttribute('value',$("catStrings").getString('staff.cat.volume_copy_creator.render_callnumber_copy_count_entry.num_of_copies')); x.setAttribute('style','font-weight: bold'); - x.setAttribute('size','3'); x.setAttribute('cols','3'); + x = document.createElement('label'); r.appendChild(x); + x.setAttribute('value',$("catStrings").getString('staff.cat.volume_copy_creator.render_callnumber_copy_count_entry.barcodes_and_parts')); x.setAttribute('style','font-weight: bold'); function handle_change(call_number_column_textbox,number_of_copies_column_textbox,barcode_column_box) { if (call_number_column_textbox.value == '') return; @@ -323,6 +331,19 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) { return grid; } +g.render_part_menu = function() { + var menulist = document.createElement('menulist'); + menulist.setAttribute('editable','true'); + var menupopup = document.createElement('menupopup'); + menulist.appendChild(menupopup); + for (var i = 0; i < g.parts.length; i++) { + var menuitem = document.createElement('menuitem'); + menuitem.setAttribute('label',g.parts[i].label()); + menupopup.appendChild(menuitem); + } + return menulist; +} + g.render_barcode_entry = function(node,callnumber,count,ou_id) { try { function ready_to_create(ev) { @@ -337,16 +358,27 @@ g.render_barcode_entry = function(node,callnumber,count,ou_id) { JSAN.use('util.barcode'); for (var i = 0; i < count; i++) { - var tb; var set_handlers = false; + var tb_part_box; + var tb; + var part_menu; + var set_handlers = false; if (typeof node.childNodes[i] == 'undefined') { - tb = document.createElement('textbox'); node.appendChild(tb); + tb_part_box = document.createElement('hbox'); + node.appendChild(tb_part_box); + tb = document.createElement('textbox'); + tb_part_box.appendChild(tb); + part_menu = g.render_part_menu(); + tb_part_box.appendChild(part_menu); set_handlers = true; } else { - tb = node.childNodes[i]; + tb_part_box = node.childNodes[i]; + tb = tb_part_box.firstChild; + part_menu = tb_part_box.lastChild; } tb.setAttribute('ou_id',ou_id); tb.setAttribute('callnumber',callnumber); tb.setAttribute('rel_vert_pos','4'); + part_menu.setAttribute('rel_vert_pos','5'); if (!tb.value && g.org_label_existing_copy_map[ ou_id ]) { tb.value = g.org_label_existing_copy_map[ ou_id ][ callnumber ][i].barcode(); tb.setAttribute('acp_id', g.org_label_existing_copy_map[ ou_id ][ callnumber ][i].id()); @@ -358,6 +390,10 @@ g.render_barcode_entry = function(node,callnumber,count,ou_id) { tb, function() { ready_to_create({'target':tb}); setTimeout(function(){util.widgets.vertical_tab(tb);},0); } ); + util.widgets.apply_vertical_tab_on_enter_handler( + part_menu, + function() { setTimeout(function(){util.widgets.vertical_tab(part_menu);},0); } + ); tb.addEventListener('change', function(ev) { var barcode = String( ev.target.value ).replace(/\s/g,''); if (barcode != ev.target.value) ev.target.value = barcode; 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 8ac1b3fed7..1195262b28 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 @@ -407,6 +407,7 @@ staff.cat.volume_copy_creator.render_volume_count_entry.title=Maximum items exce staff.cat.volume_copy_creator.render_volume_count_entry.ok_label=Ok staff.cat.volume_copy_creator.render_callnumber_copy_count_entry.call_nums=Call Numbers staff.cat.volume_copy_creator.render_callnumber_copy_count_entry.num_of_copies=# of Copies +staff.cat.volume_copy_creator.render_callnumber_copy_count_entry.barcodes_and_parts=Barcodes / Part Designation staff.cat.volume_copy_creator.render_barcode_entry.alert_message="%1$s" is an invalid barcode. staff.cat.volume_copy_creator.render_barcode_entry.alert_title=Invalid Barcode staff.cat.volume_copy_creator.render_barcode_entry.alert_ok_button=OK