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);
var x = document.getElementById('patron_name');
if (x) {
- x.addEventListener(
+ registerEventListener(
+ x,
'command',
function(ev) {
var usr = ev.target.getAttribute('data');
}
var y = document.getElementById('prev_patron_name');
if (y) {
- y.addEventListener(
+ registerEventListener(
+ y,
'command',
function(ev) {
var usr = ev.target.getAttribute('data');
}
/* 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 {
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;
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;
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 ];
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) {
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') {
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; }
false
);
- $('bill_patron_btn').addEventListener(
+ registerEventListener(
+ $('bill_patron_btn'),
'command',
function() {
JSAN.use('util.window'); var win = new util.window();
false
);
- $('bill_history_btn').addEventListener(
+ registerEventListener(
+ $('bill_history_btn'),
'command',
function() {
xulG.display_window.g.patron.right_deck.reset_iframe(
false
);
- $('convert_change_to_credit').addEventListener(
+ registerEventListener(
+ $('convert_change_to_credit'),
'command',
function(ev) {
if (ev.target.checked) {
false
);
- $('apply_payment_btn').addEventListener(
+ registerEventListener(
+ $('apply_payment_btn'),
'command',
function(ev) {
try {
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
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
);
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 ] ) {
);
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') {
}
/* set widget behavior */
- document.getElementById('csp_menulist').addEventListener(
+ registerEventListener(
+ document.getElementById('csp_menulist'),
'command',
function() {
document.getElementById('note_btn').checked = false;
},
false
);
- document.getElementById('note_btn').addEventListener(
+ registerEventListener(
+ document.getElementById('note_btn'),
'command',
function() {
document.getElementById('csp_menulist').setAttribute('label','');
},
false
);
- document.getElementById('alert_btn').addEventListener(
+ registerEventListener(
+ document.getElementById('alert_btn'),
'command',
function() {
document.getElementById('csp_menulist').setAttribute('label','');
},
false
);
- document.getElementById('block_btn').addEventListener(
+ registerEventListener(
+ document.getElementById('block_btn'),
'command',
function() {
document.getElementById('csp_menulist').setAttribute('label','');
},
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;
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;
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;
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() {
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 {
}
/* set widget behavior */
- document.getElementById('csp_menulist').addEventListener(
+ registerEventListener(
+ document.getElementById('csp_menulist'),
'command',
function() {
document.getElementById('note_btn').checked = false;
},
false
);
- document.getElementById('note_btn').addEventListener(
+ registerEventListener(
+ document.getElementById('note_btn'),
'command',
function() {
document.getElementById('csp_menulist').setAttribute('label','');
},
false
);
- document.getElementById('alert_btn').addEventListener(
+ registerEventListener(
+ document.getElementById('alert_btn'),
'command',
function() {
document.getElementById('csp_menulist').setAttribute('label','');
},
false
);
- document.getElementById('block_btn').addEventListener(
+ registerEventListener(
+ document.getElementById('block_btn'),
'command',
function() {
document.getElementById('csp_menulist').setAttribute('label','');
},
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;
populate_hold_usr_textbox();
populate_pickup_lib_menu();
- $('request_btn').addEventListener(
+ registerEventListener(
+ $('request_btn'),
'command',
function(ev) {
make_request(copy_ids,false);
)
);
addCSSClass(err_msg,'click_link');
- err_msg.addEventListener(
+ registerEventListener(
+ err_msg,
'click',
function(copy_ids) {
return function(ev) {
);
err_box.appendChild(retry_btn);
- retry_btn.addEventListener(
+ registerEventListener(
+ retry_btn,
'command',
function(copy_ids) {
return function(ev) {
);
err_box.appendChild(override_btn);
- override_btn.addEventListener(
+ registerEventListener(
+ override_btn,
'command',
function(copy_ids) {
return function(ev) {
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
'value',
patron.util.format_name(au_obj)
);
- $('hold_usr_textbox').addEventListener(
+ registerEventListener(
+ $('hold_usr_textbox'),
'change',
function(ev) {
try {
$('pickup_lib_menu_placeholder').appendChild(ml);
- ml.addEventListener(
+ registerEventListener(
+ ml,
'command',
function(ev) { oils_lock_page(); },
false
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);
}
)
);
- 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' ] });
}
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' ] });
}
)
);
- profile_ml.addEventListener('command', function() {
+ registerEventListener(profile_ml,'command', function() {
profile_ml.parentNode.setAttribute('value', profile_ml.value);
}, false
);
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();
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;
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();
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(