diff -r 000000000000 -r 40c8f766c9b8 src/cm/media/js/client/c_preferences.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cm/media/js/client/c_preferences.js Mon Nov 23 15:14:29 2009 +0100 @@ -0,0 +1,56 @@ +// manages user preferences through cookies + + +// globals used: gConf +// YUI3 used: cookie + +Preferences = function() { + this.prefs = {} ; +} + +Preferences.prototype = { + init : function() { + this._read() ; + }, + //read user preferences from cookie + _read : function() { + for (var key1 in gConf['defaultPrefs']) { + + this.prefs[key1] = {} ; + + for (var key2 in gConf['defaultPrefs'][key1]) { + + var val = null ; + if (key1 == 'user' && (key2 == 'name' || key2 == 'email')) + val = CY.Cookie.get("user_" + key2); + else + val = CY.Cookie.getSub(key1, key2); + this.prefs[key1][key2] = (val == null) ? gConf['defaultPrefs'][key1][key2] : val ; + } + } + }, + // to be used only on values in gDefaultPrefs + persist : function(key1, key2, val) { + var cookieOptions = {path:"/", expires:(new Date()).setFullYear(2100,0,1)} ; + + if (key1 == 'user' && (key2 == 'name' || key2 == 'email')) // special case want to get that from cookie set up by python code + CY.Cookie.set("user_" + key2, val, cookieOptions); + else + CY.Cookie.setSub(key1, key2, val, cookieOptions); + this.prefs[key1][key2] = val ; + }, + get : function(key1, key2) { + return this.prefs[key1][key2] ; + }, + readDefault : function(key1, key2) { + return gConf['defaultPrefs'][key1][key2] ; + }, + reset : function(entries) { + for (var i = 0; i < entries.length ; i++) { + var key1 = entries[i] ; + for (var key2 in gConf['defaultPrefs'][key1]) { + this.persist(key1, key2, gConf['defaultPrefs'][key1][key2]) ; + } + } + } +}