From e8fcf7cd23f88e605efaa793cb36d70f6aa1ef20 Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Sun, 20 Jan 2013 20:27:36 -0500 Subject: [PATCH] lp1086458 staff client memory leaks This was a shotgun attempt using the removeEventListener idea from Galen's collab/gmcharlt/lp1086458_clean_up_after_some_event_listeners, except, it doesn't work. Just sharing it for reference. The cycle collector log described in the ticket still shows the leaked elements and event listeners after the test scenario, and after many interations, the leak rate is higher than Galen's patch, and I really don't see any change compared to stock Evergreen either. Signed-off-by: Jason Etheridge --- .../chrome/content/OpenILS/global_util.js | 34 +++++++++++++++++++ .../server/circ/alternate_copy_summary.js | 6 ++-- .../server/circ/backdate_post_checkin.js | 9 +++-- Open-ILS/xul/staff_client/server/circ/checkout.js | 3 +- .../xul/staff_client/server/circ/in_house_use.js | 3 +- .../server/circ/print_list_template_editor.js | 3 +- .../staff_client/server/patron/barcode_entry.xul | 3 +- Open-ILS/xul/staff_client/server/patron/bill2.js | 39 ++++++++++++++-------- .../xul/staff_client/server/patron/bill_details.js | 9 +++-- .../xul/staff_client/server/patron/bill_history.js | 15 ++++++--- .../xul/staff_client/server/patron/bill_wizard.js | 3 +- Open-ILS/xul/staff_client/server/patron/display.js | 16 ++++----- .../server/patron/edit_standing_penalty.js | 18 ++++++---- .../xul/staff_client/server/patron/hold_cancel.js | 6 ++-- Open-ILS/xul/staff_client/server/patron/holds.js | 3 +- .../xul/staff_client/server/patron/info_notes.xul | 6 ++-- .../server/patron/new_standing_penalty.js | 18 ++++++---- .../xul/staff_client/server/patron/place_hold.js | 24 ++++++++----- .../xul/staff_client/server/patron/search_form.js | 8 ++--- Open-ILS/xul/staff_client/server/patron/staged.js | 9 ++--- .../server/patron/standing_penalties.js | 10 +++--- Open-ILS/xul/staff_client/server/patron/summary.js | 3 +- 22 files changed, 170 insertions(+), 78 deletions(-) diff --git a/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js b/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js index 09c8671cec..28670297b3 100644 --- a/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js +++ b/Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js @@ -634,3 +634,37 @@ alert('Error in global_utils.js, widget_prompt(): ' + E); } } + +function registerEventListener(node,type,listener,useCapture) { + try { + if (typeof window.oils_listeners == 'undefined') { window.oils_listeners = []; } + node.addEventListener(type,listener,useCapture); + window.oils_listeners.push({ + 'node' : node, + 'type' : type, + 'listener' : listener, + 'useCapture' : useCapture + }); + } catch(E) { + alert(location.href + ' Error in registerEventListener(' + node + ',' + listener + ',' + useCapture + '): ' + E); + } +} + +function unloadEventListeners(ev) { + try { + if (typeof window.oils_listeners != 'undefined') { + for (var i = 0; i < window.oils_listeners.length; i++) { + window.oils_listeners[i].node.removeEventListener( + window.oils_listeners[i].type, + window.oils_listeners[i].listener, + window.oils_listeners[i].useCapture + ); + } + delete window.oils_listeners; + } + } catch(E) { + alert(location.href + ' Error in unloadEventListeners(): ' + E); + } +} + +window.addEventListener('unload',unloadEventListeners,false); diff --git a/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js b/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js index 29a7dd80cb..5b9801dae0 100644 --- a/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js +++ b/Open-ILS/xul/staff_client/server/circ/alternate_copy_summary.js @@ -19,7 +19,8 @@ function my_init() { var x = document.getElementById('patron_name'); if (x) { - x.addEventListener( + registerEventListener( + x, 'command', function(ev) { var usr = ev.target.getAttribute('data'); @@ -30,7 +31,8 @@ function my_init() { } var y = document.getElementById('prev_patron_name'); if (y) { - y.addEventListener( + registerEventListener( + y, 'command', function(ev) { var usr = ev.target.getAttribute('data'); diff --git a/Open-ILS/xul/staff_client/server/circ/backdate_post_checkin.js b/Open-ILS/xul/staff_client/server/circ/backdate_post_checkin.js index a139a99ec2..4c78237611 100644 --- a/Open-ILS/xul/staff_client/server/circ/backdate_post_checkin.js +++ b/Open-ILS/xul/staff_client/server/circ/backdate_post_checkin.js @@ -43,16 +43,19 @@ function backdate_post_checkin_init() { } /* set widget behavior */ - $('cancel_btn').addEventListener( + registerEventListener( + $('cancel_btn'), 'command', function() { window.close(); }, false ); - $('apply_btn').addEventListener( + registerEventListener( + $('apply_btn'), 'command', gen_handle_apply(circ_ids), false ); - $('checkin_effective_datepicker').addEventListener( + registerEventListener( + $('checkin_effective_datepicker'), 'change', function(ev) { try { diff --git a/Open-ILS/xul/staff_client/server/circ/checkout.js b/Open-ILS/xul/staff_client/server/circ/checkout.js index 30dcec2853..68b451d74a 100644 --- a/Open-ILS/xul/staff_client/server/circ/checkout.js +++ b/Open-ILS/xul/staff_client/server/circ/checkout.js @@ -87,7 +87,8 @@ circ.checkout.prototype = { e.appendChild( ml ); ml.setAttribute('id','checkout_menulist'); ml.setAttribute('accesskey',''); - ml.addEventListener( + registerEventListener( + ml, 'command', function(ev) { var tb = obj.controller.view.checkout_barcode_entry_textbox; diff --git a/Open-ILS/xul/staff_client/server/circ/in_house_use.js b/Open-ILS/xul/staff_client/server/circ/in_house_use.js index e3d7be529a..29d540f601 100644 --- a/Open-ILS/xul/staff_client/server/circ/in_house_use.js +++ b/Open-ILS/xul/staff_client/server/circ/in_house_use.js @@ -96,7 +96,8 @@ circ.in_house_use.prototype = { e.appendChild( ml ); ml.setAttribute('id','in_house_use_menulist'); ml.setAttribute('accesskey',''); - ml.addEventListener( + registerEventListener( + ml, 'command', function(ev) { var tb = obj.controller.view.in_house_use_barcode_entry_textbox; diff --git a/Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js b/Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js index dab6e2bee1..4f59550452 100644 --- a/Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js +++ b/Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js @@ -304,7 +304,8 @@ circ.print_list_template_editor.prototype = { ml.setAttribute('flex','1'); e.appendChild(ml); obj.controller.view.template_name_menu = ml; - ml.addEventListener( + registerEventListener( + ml, 'command', function(ev) { var tmp = obj.data.print_list_templates[ ev.target.value ]; diff --git a/Open-ILS/xul/staff_client/server/patron/barcode_entry.xul b/Open-ILS/xul/staff_client/server/patron/barcode_entry.xul index bd8f0776c4..c3defbeb5b 100644 --- a/Open-ILS/xul/staff_client/server/patron/barcode_entry.xul +++ b/Open-ILS/xul/staff_client/server/patron/barcode_entry.xul @@ -42,7 +42,8 @@ JSAN.use('OpenILS.data'); g.data = new OpenILS.data(); g.data.init({'via':'stash'}); var tb = document.getElementById('barcode_tb'); - tb.addEventListener( + registerEventListener( + tb, 'keypress', function(ev) { if (ev.keyCode == 13 || ev.keyCode == 77) { diff --git a/Open-ILS/xul/staff_client/server/patron/bill2.js b/Open-ILS/xul/staff_client/server/patron/bill2.js index 83bf51c8d2..cbb438ba88 100644 --- a/Open-ILS/xul/staff_client/server/patron/bill2.js +++ b/Open-ILS/xul/staff_client/server/patron/bill2.js @@ -65,43 +65,50 @@ function my_init() { function event_listeners() { try { - $('details').addEventListener( + registerEventListener( + $('details'), 'command', handle_details, false ); - $('add').addEventListener( + registerEventListener( + $('add'), 'command', handle_add, false ); - $('voidall').addEventListener( + registerEventListener( + $('voidall'), 'command', handle_void_all, false ); - $('refund').addEventListener( + registerEventListener( + $('refund'), 'command', handle_refund, false ); - $('opac').addEventListener( + registerEventListener( + $('opac'), 'command', handle_opac, false ); - $('copy_details').addEventListener( + registerEventListener( + $('copy_details'), 'command', handle_copy_details, false ); - $('payment').addEventListener( + registerEventListener( + $('payment'), 'change', function(ev) { if ($('payment_type').value == 'credit_payment') { @@ -120,13 +127,15 @@ function event_listeners() { false ); - $('payment').addEventListener( + registerEventListener( + $('payment'), 'focus', function(ev) { ev.target.select(); }, false ); - $('payment').addEventListener( + registerEventListener( + $('payment'), 'keypress', function(ev) { if (! (ev.keyCode == 13 /* enter */ || ev.keyCode == 77 /* mac enter */) ) { return; } @@ -136,7 +145,8 @@ function event_listeners() { false ); - $('bill_patron_btn').addEventListener( + registerEventListener( + $('bill_patron_btn'), 'command', function() { JSAN.use('util.window'); var win = new util.window(); @@ -154,7 +164,8 @@ function event_listeners() { false ); - $('bill_history_btn').addEventListener( + registerEventListener( + $('bill_history_btn'), 'command', function() { xulG.display_window.g.patron.right_deck.reset_iframe( @@ -171,7 +182,8 @@ function event_listeners() { false ); - $('convert_change_to_credit').addEventListener( + registerEventListener( + $('convert_change_to_credit'), 'command', function(ev) { if (ev.target.checked) { @@ -183,7 +195,8 @@ function event_listeners() { false ); - $('apply_payment_btn').addEventListener( + registerEventListener( + $('apply_payment_btn'), 'command', function(ev) { try { diff --git a/Open-ILS/xul/staff_client/server/patron/bill_details.js b/Open-ILS/xul/staff_client/server/patron/bill_details.js index 52c4e061ff..b1f39c0884 100644 --- a/Open-ILS/xul/staff_client/server/patron/bill_details.js +++ b/Open-ILS/xul/staff_client/server/patron/bill_details.js @@ -224,19 +224,22 @@ function my_init() { retrieve_mb(); retrieve_mp(); - $('void').addEventListener( + registerEventListener( + $('void'), 'command', handle_void, false ); - $('edit_bill_note').addEventListener( + registerEventListener( + $('edit_bill_note'), 'command', handle_edit_bill_note, false ); - $('edit_payment_note').addEventListener( + registerEventListener( + $('edit_payment_note'), 'command', handle_edit_payment_note, false diff --git a/Open-ILS/xul/staff_client/server/patron/bill_history.js b/Open-ILS/xul/staff_client/server/patron/bill_history.js index 098a140ed4..8776da4a96 100644 --- a/Open-ILS/xul/staff_client/server/patron/bill_history.js +++ b/Open-ILS/xul/staff_client/server/patron/bill_history.js @@ -244,31 +244,36 @@ function my_init() { retrieve_mbts_for_list(); - $('details').addEventListener( + registerEventListener( + $('details'), 'command', gen_handle_details('bills'), false ); - $('payments_details').addEventListener( + registerEventListener( + $('payments_details'), 'command', gen_handle_details('payments'), false ); - $('copy_details').addEventListener( + registerEventListener( + $('copy_details'), 'command', gen_handle_copy_details('bills'), false ); - $('copy_details_from_payments').addEventListener( + registerEventListener( + $('copy_details_from_payments'), 'command', gen_handle_copy_details('payments'), false ); - $('add').addEventListener( + registerEventListener( + $('add'), 'command', handle_add, false diff --git a/Open-ILS/xul/staff_client/server/patron/bill_wizard.js b/Open-ILS/xul/staff_client/server/patron/bill_wizard.js index 1dc31471c3..69c8fabde8 100644 --- a/Open-ILS/xul/staff_client/server/patron/bill_wizard.js +++ b/Open-ILS/xul/staff_client/server/patron/bill_wizard.js @@ -116,7 +116,8 @@ function patron_bill_init() { ); ml.setAttribute('id','billing_type'); document.getElementById('menu_placeholder').appendChild(ml); - ml.addEventListener( + registerEventListener( + ml, 'command', function() { if ( g.OpenILS.data.hash.cbt[ ml.value ] ) { diff --git a/Open-ILS/xul/staff_client/server/patron/display.js b/Open-ILS/xul/staff_client/server/patron/display.js index 3530f713d7..b8abcaa641 100644 --- a/Open-ILS/xul/staff_client/server/patron/display.js +++ b/Open-ILS/xul/staff_client/server/patron/display.js @@ -605,21 +605,21 @@ patron.display.prototype = { ); var x = document.getElementById("PatronNavBar_checkout"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_refresh"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_items"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_holds"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_other"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_edit"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_bills"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); var x = document.getElementById("PatronNavBar_messages"); - x.addEventListener( 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); + registerEventListener(x, 'focus', function(xx) { return function() { try { document.getElementById("PatronNavBarScrollbox").ensureElementIsVisible(xx); } catch(E) {}; } }(x), false); if (obj.barcode || obj.id) { if (typeof window.xulG == 'object' && typeof window.xulG.set_tab_name == 'function') { diff --git a/Open-ILS/xul/staff_client/server/patron/edit_standing_penalty.js b/Open-ILS/xul/staff_client/server/patron/edit_standing_penalty.js index b2d60fdb64..893326d8f4 100644 --- a/Open-ILS/xul/staff_client/server/patron/edit_standing_penalty.js +++ b/Open-ILS/xul/staff_client/server/patron/edit_standing_penalty.js @@ -48,7 +48,8 @@ function edit_penalty_init() { } /* set widget behavior */ - document.getElementById('csp_menulist').addEventListener( + registerEventListener( + document.getElementById('csp_menulist'), 'command', function() { document.getElementById('note_btn').checked = false; @@ -57,7 +58,8 @@ function edit_penalty_init() { }, false ); - document.getElementById('note_btn').addEventListener( + registerEventListener( + document.getElementById('note_btn'), 'command', function() { document.getElementById('csp_menulist').setAttribute('label',''); @@ -65,7 +67,8 @@ function edit_penalty_init() { }, false ); - document.getElementById('alert_btn').addEventListener( + registerEventListener( + document.getElementById('alert_btn'), 'command', function() { document.getElementById('csp_menulist').setAttribute('label',''); @@ -73,7 +76,8 @@ function edit_penalty_init() { }, false ); - document.getElementById('block_btn').addEventListener( + registerEventListener( + document.getElementById('block_btn'), 'command', function() { document.getElementById('csp_menulist').setAttribute('label',''); @@ -81,10 +85,12 @@ function edit_penalty_init() { }, false ); - document.getElementById('cancel_btn').addEventListener( + registerEventListener( + document.getElementById('cancel_btn'), 'command', function() { window.close(); }, false ); - document.getElementById('apply_btn').addEventListener( + registerEventListener( + document.getElementById('apply_btn'), 'command', function() { var note = document.getElementById('note_tb').value; diff --git a/Open-ILS/xul/staff_client/server/patron/hold_cancel.js b/Open-ILS/xul/staff_client/server/patron/hold_cancel.js index 4adbcc1855..845cba1caa 100644 --- a/Open-ILS/xul/staff_client/server/patron/hold_cancel.js +++ b/Open-ILS/xul/staff_client/server/patron/hold_cancel.js @@ -25,10 +25,12 @@ function hold_cancel_init() { build_cancel_reason_menu(); /* set widget behavior */ - document.getElementById('cancel_btn').addEventListener( + registerEventListener( + document.getElementById('cancel_btn'), 'command', function() { window.close(); }, false ); - document.getElementById('apply_btn').addEventListener( + registerEventListener( + document.getElementById('apply_btn'), 'command', function() { var note = document.getElementById('note_tb').value; diff --git a/Open-ILS/xul/staff_client/server/patron/holds.js b/Open-ILS/xul/staff_client/server/patron/holds.js index 9b15aef53e..9b2cc0429b 100644 --- a/Open-ILS/xul/staff_client/server/patron/holds.js +++ b/Open-ILS/xul/staff_client/server/patron/holds.js @@ -1825,7 +1825,8 @@ patron.holds.prototype = { var ml = util.widgets.make_menulist( list_data[0], obj.data.list.au[0].ws_ou() ); ml.setAttribute('id','lib_menu'); x.appendChild( ml ); - ml.addEventListener( + registerEventListener( + ml, 'command', function(ev) { obj.filter_lib = ev.target.value; diff --git a/Open-ILS/xul/staff_client/server/patron/info_notes.xul b/Open-ILS/xul/staff_client/server/patron/info_notes.xul index 133eec5cf2..e94507085f 100644 --- a/Open-ILS/xul/staff_client/server/patron/info_notes.xul +++ b/Open-ILS/xul/staff_client/server/patron/info_notes.xul @@ -124,7 +124,8 @@ btn1.setAttribute('label',$("patronStrings").getString('staff.patron.info_notes.render_notes.btn1.delete_note.label')); btn1.setAttribute('image',"/xul/server/skin/media/images/up_arrow.gif"); - btn1.addEventListener( + registerEventListener( + btn1, 'command', function(id){ return function() { @@ -153,7 +154,8 @@ btn2.setAttribute('label',$("patronStrings").getString('staff.patron.info_notes.render_notes.btn2.print_note.label')); btn2.setAttribute('image',"/xul/server/skin/media/images/up_arrow.gif"); - btn2.addEventListener( + registerEventListener( + btn2, 'command', function(id){ return function() { try { diff --git a/Open-ILS/xul/staff_client/server/patron/new_standing_penalty.js b/Open-ILS/xul/staff_client/server/patron/new_standing_penalty.js index ddfd645c84..359ba707a5 100644 --- a/Open-ILS/xul/staff_client/server/patron/new_standing_penalty.js +++ b/Open-ILS/xul/staff_client/server/patron/new_standing_penalty.js @@ -30,7 +30,8 @@ function new_penalty_init() { } /* set widget behavior */ - document.getElementById('csp_menulist').addEventListener( + registerEventListener( + document.getElementById('csp_menulist'), 'command', function() { document.getElementById('note_btn').checked = false; @@ -39,7 +40,8 @@ function new_penalty_init() { }, false ); - document.getElementById('note_btn').addEventListener( + registerEventListener( + document.getElementById('note_btn'), 'command', function() { document.getElementById('csp_menulist').setAttribute('label',''); @@ -47,7 +49,8 @@ function new_penalty_init() { }, false ); - document.getElementById('alert_btn').addEventListener( + registerEventListener( + document.getElementById('alert_btn'), 'command', function() { document.getElementById('csp_menulist').setAttribute('label',''); @@ -55,7 +58,8 @@ function new_penalty_init() { }, false ); - document.getElementById('block_btn').addEventListener( + registerEventListener( + document.getElementById('block_btn'), 'command', function() { document.getElementById('csp_menulist').setAttribute('label',''); @@ -63,10 +67,12 @@ function new_penalty_init() { }, false ); - document.getElementById('cancel_btn').addEventListener( + registerEventListener( + document.getElementById('cancel_btn'), 'command', function() { window.close(); }, false ); - document.getElementById('apply_btn').addEventListener( + registerEventListener( + document.getElementById('apply_btn'), 'command', function() { var note = document.getElementById('note_tb').value; diff --git a/Open-ILS/xul/staff_client/server/patron/place_hold.js b/Open-ILS/xul/staff_client/server/patron/place_hold.js index 4dd84230f8..83a49dbc58 100644 --- a/Open-ILS/xul/staff_client/server/patron/place_hold.js +++ b/Open-ILS/xul/staff_client/server/patron/place_hold.js @@ -20,7 +20,8 @@ function my_init() { populate_hold_usr_textbox(); populate_pickup_lib_menu(); - $('request_btn').addEventListener( + registerEventListener( + $('request_btn'), 'command', function(ev) { make_request(copy_ids,false); @@ -134,7 +135,8 @@ function handle_failures(failures,failed_targets) { ) ); addCSSClass(err_msg,'click_link'); - err_msg.addEventListener( + registerEventListener( + err_msg, 'click', function(copy_ids) { return function(ev) { @@ -156,7 +158,8 @@ function handle_failures(failures,failed_targets) { ); err_box.appendChild(retry_btn); - retry_btn.addEventListener( + registerEventListener( + retry_btn, 'command', function(copy_ids) { return function(ev) { @@ -177,7 +180,8 @@ function handle_failures(failures,failed_targets) { ); err_box.appendChild(override_btn); - override_btn.addEventListener( + registerEventListener( + override_btn, 'command', function(copy_ids) { return function(ev) { @@ -200,13 +204,15 @@ function handle_failures(failures,failed_targets) { function set_remaining_event_listeners() { try { - $('hold_type_menu').addEventListener( + registerEventListener( + $('hold_type_menu'), 'command', function(ev) { oils_lock_page(); }, false ); - $('cancel_btn').addEventListener( + registerEventListener( + $('cancel_btn'), 'command', function(ev) { xulG.close_tab(); }, false @@ -231,7 +237,8 @@ function populate_hold_usr_textbox() { 'value', patron.util.format_name(au_obj) ); - $('hold_usr_textbox').addEventListener( + registerEventListener( + $('hold_usr_textbox'), 'change', function(ev) { try { @@ -288,7 +295,8 @@ function populate_pickup_lib_menu() { $('pickup_lib_menu_placeholder').appendChild(ml); - ml.addEventListener( + registerEventListener( + ml, 'command', function(ev) { oils_lock_page(); }, false diff --git a/Open-ILS/xul/staff_client/server/patron/search_form.js b/Open-ILS/xul/staff_client/server/patron/search_form.js index 7f589522c6..abd6a4b941 100644 --- a/Open-ILS/xul/staff_client/server/patron/search_form.js +++ b/Open-ILS/xul/staff_client/server/patron/search_form.js @@ -251,7 +251,7 @@ patron.search_form.prototype = { obj.controller.render(); var nl = document.getElementsByTagName('textbox'); for (var i = 0; i < nl.length; i++) { - nl[i].addEventListener('keypress',function(ev){ + registerEventListener(nl[i],'keypress',function(ev){ if (ev.target.tagName != 'textbox') return; if (ev.keyCode == 13 /* enter */ || ev.keyCode == 77 /* enter on a mac */) setTimeout( function() { obj.submit(); }, 0); },false); @@ -273,7 +273,7 @@ patron.search_form.prototype = { } ) ); - ml.addEventListener('command', function() { + registerEventListener(ml,'command', function() { ml.parentNode.setAttribute('value',ml.value); var file = new util.file('patron_search_prefs.'+obj.OpenILS.data.server_unadorned); util.widgets.save_attributes(file, { 'search_depth_ml' : [ 'value' ], 'inactive' : [ 'value' ] }); @@ -291,7 +291,7 @@ patron.search_form.prototype = { } var cb = obj.controller.view.inactive; - cb.addEventListener('command',function() { + registerEventListener(cb,'command',function() { cb.setAttribute('value',cb.checked ? "true" : "false"); var file = new util.file('patron_search_prefs.'+obj.OpenILS.data.server_unadorned); util.widgets.save_attributes(file, { 'search_depth_ml' : [ 'value' ], 'inactive' : [ 'value' ] }); @@ -315,7 +315,7 @@ patron.search_form.prototype = { } ) ); - profile_ml.addEventListener('command', function() { + registerEventListener(profile_ml,'command', function() { profile_ml.parentNode.setAttribute('value', profile_ml.value); }, false ); diff --git a/Open-ILS/xul/staff_client/server/patron/staged.js b/Open-ILS/xul/staff_client/server/patron/staged.js index 45e156774a..9d45b94f48 100644 --- a/Open-ILS/xul/staff_client/server/patron/staged.js +++ b/Open-ILS/xul/staff_client/server/patron/staged.js @@ -37,9 +37,9 @@ function staged_init() { init_list(); $('list_actions').appendChild( list.render_list_actions() ); list.set_list_actions(); - $('cmd_cancel').addEventListener('command', gen_event_handler('cancel'), false); - $('cmd_load').addEventListener('command', gen_event_handler('load'), false); - $('cmd_reload').addEventListener('command', function() { populate_list(); }, false); + registerEventListener($('cmd_cancel'),'command', gen_event_handler('cancel'), false); + registerEventListener($('cmd_load'),'command', gen_event_handler('load'), false); + registerEventListener($('cmd_reload'),'command', function() { populate_list(); }, false); populate_list(); default_focus(); @@ -64,7 +64,8 @@ function populate_lib_menu() { var ml = util.widgets.make_menulist( list_data[0], menu_lib ); ml.setAttribute('id','lib_menu'); x.appendChild( ml ); - ml.addEventListener( + registerEventListener( + ml, 'command', function(ev) { menu_lib = ev.target.value; diff --git a/Open-ILS/xul/staff_client/server/patron/standing_penalties.js b/Open-ILS/xul/staff_client/server/patron/standing_penalties.js index d36edf4476..54c017fbf5 100644 --- a/Open-ILS/xul/staff_client/server/patron/standing_penalties.js +++ b/Open-ILS/xul/staff_client/server/patron/standing_penalties.js @@ -29,11 +29,11 @@ function penalty_init() { init_list(); init_archived_list(); document.getElementById('date1').year = document.getElementById('date1').year - 1; - document.getElementById('cmd_apply_penalty').addEventListener('command', handle_apply_penalty, false); - document.getElementById('cmd_remove_penalty').addEventListener('command', handle_remove_penalty, false); - document.getElementById('cmd_edit_penalty').addEventListener('command', handle_edit_penalty, false); - document.getElementById('cmd_archive_penalty').addEventListener('command', handle_archive_penalty, false); - document.getElementById('cmd_retrieve_archived_penalties').addEventListener('command', handle_retrieve_archived_penalties, false); + registerEventListener(document.getElementById('cmd_apply_penalty'),'command', handle_apply_penalty, false); + registerEventListener(document.getElementById('cmd_remove_penalty'),'command', handle_remove_penalty, false); + registerEventListener(document.getElementById('cmd_edit_penalty'),'command', handle_edit_penalty, false); + registerEventListener(document.getElementById('cmd_archive_penalty'),'command', handle_archive_penalty, false); + registerEventListener(document.getElementById('cmd_retrieve_archived_penalties'),'command', handle_retrieve_archived_penalties, false); populate_list(); default_focus(); diff --git a/Open-ILS/xul/staff_client/server/patron/summary.js b/Open-ILS/xul/staff_client/server/patron/summary.js index 0b65cc4cfc..9be9c9df2d 100644 --- a/Open-ILS/xul/staff_client/server/patron/summary.js +++ b/Open-ILS/xul/staff_client/server/patron/summary.js @@ -901,7 +901,8 @@ patron.summary.prototype = { var caption = document.getElementById("PatronSummaryContact_caption"); var arrow = document.getAnonymousNodes(caption)[0]; var gb_content = document.getAnonymousNodes(caption.parentNode)[1]; - arrow.addEventListener( + registerEventListener( + arrow, 'click', function() { setTimeout( -- 2.11.0