From 0e585312e800ad1fd2dc850777b7da92bce149da Mon Sep 17 00:00:00 2001 From: phasefx Date: Fri, 26 Mar 2010 16:03:02 +0000 Subject: [PATCH] textbox support for oils_persist (to fix stickiness in the label interface). trunk already has this but is so drastically different that I'm afraid to backport git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6@16008 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- .../chrome/content/OpenILS/global_util.js | 28 +++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) 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 05b1ac80e1..9e2b835075 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 @@ -48,7 +48,13 @@ 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 (value) { + if (nodes[i].nodeName == 'textbox') { + nodes[i].value = value; + } else { + nodes[i].setAttribute( attribute_list[j], value ); + } + } } if (nodes[i].nodeName == 'checkbox' && attribute_list.indexOf('checked') > -1) { if (nodes[i].disabled == false && nodes[i].hidden == false) { @@ -80,6 +86,26 @@ false ); } + if (nodes[i].nodeName == 'textbox' && attribute_list.indexOf('value') > -1) { + nodes[i].addEventListener( + 'change', + function(bk) { + return function(ev) { + try { + netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); + var key = bk + 'value'; + var value = ev.target.value; + ev.target.setAttribute( 'value', value ); + prefs.setCharPref( key, value ); + dump('persist_helper: setting key = ' + key + ' value = ' + value + ' for textbox\n'); + } catch(E) { + alert('Error in persist_helper(), textbox change event listener: ' + E); + } + }; + }(base_key), + false + ); + } // TODO: Need to add event listeners for window resizing, splitter repositioning, grippy state, etc. } } catch(E) { -- 2.11.0