src/cm/media/js/client/c_preferences.js
changeset 0 40c8f766c9b8
child 341 053551f213fb
equal deleted inserted replaced
-1:000000000000 0:40c8f766c9b8
       
     1 // manages user preferences through cookies
       
     2 
       
     3 
       
     4 // globals used: gConf
       
     5 // YUI3 used: cookie
       
     6 
       
     7 Preferences = function() {
       
     8 	this.prefs = {} ;  
       
     9 }
       
    10 
       
    11 Preferences.prototype = {
       
    12 	init : function() {
       
    13 		this._read() ;
       
    14 	},
       
    15 	//read user preferences from cookie
       
    16 	_read : function() {
       
    17 		for (var key1 in gConf['defaultPrefs']) {
       
    18 			
       
    19 			this.prefs[key1] = {} ;
       
    20 			
       
    21 			for (var key2 in gConf['defaultPrefs'][key1]) {
       
    22 
       
    23 				var val = null ;
       
    24 				if (key1 == 'user' && (key2 == 'name' || key2 == 'email'))
       
    25 					val = CY.Cookie.get("user_" + key2);
       
    26 				else 
       
    27 					val = CY.Cookie.getSub(key1, key2);
       
    28 				this.prefs[key1][key2] = (val == null) ? gConf['defaultPrefs'][key1][key2] : val ;
       
    29 			}
       
    30 		}
       
    31 	},
       
    32 	// to be used only on values in gDefaultPrefs
       
    33 	persist : function(key1, key2, val) {
       
    34 		var cookieOptions = {path:"/", expires:(new Date()).setFullYear(2100,0,1)} ;
       
    35 		
       
    36 		if (key1 == 'user' && (key2 == 'name' || key2 == 'email')) // special case want to get that from cookie set up by python code
       
    37 			CY.Cookie.set("user_" + key2, val, cookieOptions);
       
    38 		else 
       
    39 			CY.Cookie.setSub(key1, key2, val, cookieOptions);
       
    40 		this.prefs[key1][key2] = val ;
       
    41 	},
       
    42 	get : function(key1, key2) {
       
    43 		return this.prefs[key1][key2] ;
       
    44 	},
       
    45 	readDefault : function(key1, key2) {
       
    46 		return gConf['defaultPrefs'][key1][key2] ;
       
    47 	},
       
    48 	reset : function(entries) {
       
    49 		for (var i = 0; i < entries.length ; i++) {
       
    50 			var key1 = entries[i] ;
       
    51 			for (var key2 in gConf['defaultPrefs'][key1]) {
       
    52 				this.persist(key1, key2, gConf['defaultPrefs'][key1][key2]) ;
       
    53 			}
       
    54 		}
       
    55 	}
       
    56 }