From: phasefx Date: Mon, 12 Oct 2009 14:51:14 +0000 (+0000) Subject: backport changesets 13953, 14017: persist mechanism replacement for 1.9 xulrunners X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=ef7342df2832fec43fc7d890aa4bc8e61bb94ef2;p=Evergreen.git backport changesets 13953, 14017: persist mechanism replacement for 1.9 xulrunners git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6_0@14356 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- 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 f3cbb4ded8..042e8d2a6b 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 @@ -35,6 +35,50 @@ } } + function persist_helper() { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components.interfaces['nsIPrefBranch']); + var nodes = document.getElementsByAttribute('oils_persist','*'); + for (var i = 0; i < nodes.length; i++) { + var base_key = 'oils_persist_' + String(location.hostname + location.pathname + '_' + nodes[i].getAttribute('id')).replace('/','_','g') + '_'; + var attribute_list = nodes[i].getAttribute('oils_persist').split(' '); + for (var j = 0; j < attribute_list.length; j++) { + var key = base_key + attribute_list[j]; + var value = prefs.prefHasUserValue(key) ? prefs.getCharPref(key) : null; + dump('persist_helper: retrieving key = ' + key + ' value = ' + value + ' for ' + nodes[i].nodeName + '\n'); + if (value) nodes[i].setAttribute( attribute_list[j], value ); + } + if (nodes[i].nodeName == 'checkbox' && attribute_list.indexOf('checked') > -1) { + var evt = document.createEvent("Events"); + evt.initEvent( 'command', true, true ); + nodes[i].dispatchEvent(evt); + nodes[i].addEventListener( + 'command', + function(bk) { + return function(ev) { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var key = bk + 'checked'; + var value = ev.target.checked; + ev.target.setAttribute( 'checked', value ); + prefs.setCharPref( key, value ); + dump('persist_helper: setting key = ' + key + ' value = ' + value + ' for checkbox\n'); + } catch(E) { + alert('Error in persist_helper(), checkbox command event listener: ' + E); + } + }; + }(base_key), + false + ); + } + // TODO: Need to add event listeners for window resizing, splitter repositioning, grippy state, etc. + } + } catch(E) { + alert('Error in persist_helper(): ' + E); + } + } + function getKeys(o) { var keys = []; for (var k in o) keys.push(k); diff --git a/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul b/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul index d19616d0b4..8fa3bc47bb 100644 --- a/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul +++ b/Open-ILS/xul/staff_client/chrome/content/circ/offline_checkin.xul @@ -16,7 +16,7 @@ @@ -50,7 +50,7 @@ &common.check_barcode.description; - +