textbox support for oils_persist (to fix stickiness in the label interface). trunk...
authorphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 26 Mar 2010 16:02:24 +0000 (16:02 +0000)
committerphasefx <phasefx@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Fri, 26 Mar 2010 16:02:24 +0000 (16:02 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6_0@16007 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js

index f915d24..2ea3753 100644 (file)
                     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) {
                         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) {