From: Jason Etheridge Date: Wed, 7 Sep 2011 20:34:00 +0000 (-0400) Subject: LP#838311 acn_id = undefined error in vol/copy ui X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=883a5a0c1cddd6d5b523cbc0af95f346c4af1a19;p=evergreen%2Ftadl.git LP#838311 acn_id = undefined error in vol/copy ui Fixes race condition between multiple event listeners on drop-down menus. Bug happened most often when batch applying values across multiple volumes and then hitting save/create/update. Signed-off-by: Jason Etheridge Resolved conflict: Open-ILS/xul/staff_client/server/cat/volume_copy_creator.js Signed-off-by: Mike Rylander --- 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 9cb8164dad..954c191daa 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 @@ -406,6 +406,7 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) { dump('\tcomposite_key = ' + callnumber_composite_key + '\n'); _call_number_column_textbox.setAttribute('callkey',callnumber_composite_key); + //_call_number_column_textbox.setAttribute('tooltiptext',callnumber_composite_key); _call_number_column_textbox.setAttribute('acnc_id',acnc_id); _call_number_column_textbox.setAttribute('acnp_id',acnp_id); _call_number_column_textbox.setAttribute('acns_id',acns_id); @@ -474,25 +475,17 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) { call_number_column_textbox.addEventListener( 'focus', function(ev) { g.last_focus = ev.target; }, false ); /**** CLASSIFICATION COLUMN revisited ****/ - var classification_column_menulist = g.render_class_menu(call_number_column_textbox); - classification_column_menulist.addEventListener( - 'command', - function() { - handle_change_to_callnumber_data({'target':call_number_column_textbox}); - } - ,false + var classification_column_menulist = g.render_class_menu( + call_number_column_textbox, + handle_change_to_callnumber_data ); classification_column_box.appendChild(classification_column_menulist); classification_column_menulist.value = g.label_class; /**** PREFIX COLUMN revisited ****/ - var prefix_column_menulist = g.render_prefix_menu(call_number_column_textbox); - prefix_column_menulist.addEventListener( - 'command', - function() { - handle_change_to_callnumber_data({'target':call_number_column_textbox}); - } - ,false + var prefix_column_menulist = g.render_prefix_menu( + call_number_column_textbox, + handle_change_to_callnumber_data ); prefix_column_box.appendChild(prefix_column_menulist); @@ -502,13 +495,9 @@ g.render_callnumber_copy_count_entry = function(row,ou_id,count) { suffix_column_box.setAttribute('class','cn_suffix'); r.appendChild(suffix_column_box); suffix_column_box.width = $('batch_suffix').parentNode.boxObject.width; - var suffix_column_menulist = g.render_suffix_menu(call_number_column_textbox); - suffix_column_menulist.addEventListener( - 'command', - function() { - handle_change_to_callnumber_data({'target':call_number_column_textbox}); - } - ,false + var suffix_column_menulist = g.render_suffix_menu( + call_number_column_textbox, + handle_change_to_callnumber_data ); suffix_column_box.appendChild(suffix_column_menulist); @@ -713,6 +702,7 @@ g.render_barcode_entry = function(node,callnumber_composite_key,count,ou_id) { } tb.setAttribute('ou_id',ou_id); tb.setAttribute('callkey',callnumber_composite_key); + //tb.setAttribute('tooltiptext',callnumber_composite_key); tb.setAttribute('rel_vert_pos',rel_vert_pos_barcode); part_menu.firstChild.setAttribute('rel_vert_pos',rel_vert_pos_part); if (!tb.value && g.org_label_existing_copy_map[ ou_id ]) { @@ -1258,13 +1248,14 @@ g.render_class_menu = function(call_number_tb) { 'command', function() { call_number_tb.setAttribute('acnc_id',ml.value); + update_func({'target':call_number_tb}); }, false ); return ml; } -g.render_prefix_menu = function(call_number_tb) { +g.render_prefix_menu = function(call_number_tb,update_func) { var ou_id = call_number_tb.getAttribute('ou_id'); var org = g.data.hash.aou[ ou_id ]; var menulist = document.createElement('menulist'); @@ -1287,6 +1278,7 @@ g.render_prefix_menu = function(call_number_tb) { 'command', function() { call_number_tb.setAttribute('acnp_id',menulist.value); + update_func({'target':call_number_tb}); }, false ); @@ -1320,7 +1312,7 @@ g.render_prefix_menu_items = function(menupopup,ou_id) { } } -g.render_suffix_menu = function(call_number_tb) { +g.render_suffix_menu = function(call_number_tb,update_func) { var ou_id = call_number_tb.getAttribute('ou_id'); var org = g.data.hash.aou[ ou_id ]; var menulist = document.createElement('menulist'); @@ -1343,6 +1335,7 @@ g.render_suffix_menu = function(call_number_tb) { 'command', function() { call_number_tb.setAttribute('acns_id',menulist.value); + update_func({'target':call_number_tb}); }, false );