You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wookie.apache.org by ra...@apache.org on 2011/02/10 14:52:01 UTC

svn commit: r1069392 - /incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js

Author: raido
Date: Thu Feb 10 13:52:00 2011
New Revision: 1069392

URL: http://svn.apache.org/viewvc?rev=1069392&view=rev
Log:
Fix WOOKIE-151

Modified:
    incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js

Modified: incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js
URL: http://svn.apache.org/viewvc/incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js?rev=1069392&r1=1069391&r2=1069392&view=diff
==============================================================================
--- incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js (original)
+++ incubator/wookie/trunk/WebContent/shared/js/wookie-wrapper.js Thu Feb 10 13:52:00 2011
@@ -47,8 +47,9 @@ WidgetPreferences = new function WidgetP
         pref.dvalue = value;
         pref.key = key;
         pref.readOnly = false;
-        
+   
 	    var existing = this.prefs[key];
+        
         if (existing){
             if (existing["readOnly"] == true){
             	window.DOMException.code = DOMException.NO_MODIFICATION_ALLOWED_ERR;
@@ -59,18 +60,23 @@ WidgetPreferences = new function WidgetP
         	try{
         		eval("Widget.preferences.__defineGetter__('"+key+"', function(){return Widget.preferences.getItem('"+key+"')})");
         		eval("Widget.preferences.__defineSetter__('"+key+"', function(v){return Widget.preferences.setItem('"+key+"',v)})");
-        		eval("Widget.preferences.prefs."+key+"=pref");
+        		eval("Widget.preferences.prefs[\""+key+"\"]=pref;");
         	} 
         	catch(err){
         		// cant use __defineGetter__ so try to setup for IE9
         		try{
         			eval("Object.defineProperty(Widget.preferences,'" + key + "', {get: function get() { return Widget.preferences.getItem('"+key+"');},set: function set(value) {Widget.preferences.setItem('"+key+"',value)}});");
-        			eval("Widget.preferences.prefs."+key+"=pref");
+        			eval("Widget.preferences.prefs[\""+key+"\"]=pref;");
         		}
         		catch(err){
         			// Catch IE 8 error. See WOOKIE-44
-        			eval("Widget.preferences." + key + "='" + value + "'");
-        			eval("Widget.preferences.prefs." + key + "=pref");
+        			
+	        		eval("Widget.preferences");
+	        		//If eval went fine, populate with data, See WOOKIE-151
+	        		if(typeof Widget.preferences != "undefined") {
+	        			Widget.preferences[key] = value;
+	        			Widget.preferences.prefs[key] = pref;
+	        		}
         		}
             }
         }
@@ -172,17 +178,17 @@ var Widget = {
             try{
             	eval("Widget.preferences.__defineGetter__('"+key+"', function(){return Widget.preferences.getItem('"+key+"')})");
             	eval("Widget.preferences.__defineSetter__('"+key+"', function(v){return Widget.preferences.setItem('"+key+"',v)})");
-            	eval("this.preferences.prefs."+key+"=obj");
+            	eval("this.preferences.prefs[\""+key+"\"]=obj;");
             }
             catch(err){
             	// cant use __defineGetter__ so try to setup for IE9
             	try{
             		eval("Object.defineProperty(Widget.preferences,'" + key + "', {get: function get() { return Widget.preferences.getItem('"+key+"');},set: function set(value) {Widget.preferences.setItem('"+key+"',value)}});");
-            		eval("this.preferences.prefs."+key+"=obj");
+            		eval("this.preferences.prefs[\""+key+"\"]=obj;");
             	}
             	catch(err){
             		// Catch IE 8 error. See WOOKIE-44
-            		eval("this.preferences.prefs."+key+"=obj");
+            		eval("this.preferences.prefs[\""+key+"\"]=obj;");
             	}
             }
 		}