Can't use encodeURI and decodeURI for everything with persist_helper (in particular...
authorJason Etheridge <jason@esilibrary.com>
Wed, 18 May 2011 02:24:21 +0000 (22:24 -0400)
committerJason Etheridge <jason@esilibrary.com>
Wed, 18 May 2011 02:28:53 +0000 (22:28 -0400)
Signed-off-by: Jason Etheridge <jason@esilibrary.com>

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

index c1c104c..58d6484 100644 (file)
                         dump('on_oils_persist: <<< ' + target.nodeName + '.id = ' + target.id + '\t' + bk + '\n');
                         for (var j = 0; j < attribute_list.length; j++) {
                             var key = base_key + attribute_list[j];
-                            var value = encodeURI(target.getAttribute( attribute_list[j] ));
+                            var value;
+                            try {
+                                value = encodeURI(target.getAttribute( attribute_list[j] ));
+                            } catch(E) {
+                                dump('Error in persist_helper with encodeURI: ' + E + '\n');
+                                value = target.getAttribute( attribute_list[j] );
+                            }
                             if ( attribute_list[j] == 'checked' && ['checkbox','toolbarbutton'].indexOf( target.nodeName ) > -1 ) {
                                 value = target.checked;
                                 dump('\t' + value + ' <== .' + attribute_list[j] + '\n');
                 for (var j = 0; j < attribute_list.length; j++) {
                     var key = base_key + attribute_list[j];
                     var has_key = prefs.prefHasUserValue(key);
-                    var value = has_key ? decodeURI(prefs.getCharPref(key)) : null;
+                    var value;
+                    try {
+                        value = has_key ? decodeURI(prefs.getCharPref(key)) : null;
+                    } catch(E) {
+                        dump('Error in persist_helper with decodeURI: ' + E + '\n');
+                        value = has_key ? prefs.getCharPref(key) : null;
+                    }
                     if (value == 'true') { value = true; }
                     if (value == 'false') { value = false; }
                     if (has_key) {