Merge "Use localStorage to store previous languages, not cookies"

This commit is contained in:
jenkins-bot
2015-09-02 09:06:33 +00:00
committed by Gerrit Code Review

View File

@@ -22,7 +22,7 @@
var hasOwn = Object.prototype.hasOwnProperty; var hasOwn = Object.prototype.hasOwnProperty;
mw.uls = mw.uls || {}; mw.uls = mw.uls || {};
mw.uls.previousLanguagesCookie = 'uls-previous-languages'; mw.uls.previousLanguagesStorageKey = 'uls-previous-languages';
mw.uls.previousLanguageAutonymCookie = 'uls-previous-language-autonym'; mw.uls.previousLanguageAutonymCookie = 'uls-previous-language-autonym';
mw.uls.languageSettingsModules = [ 'ext.uls.inputsettings', 'ext.uls.displaysettings' ]; mw.uls.languageSettingsModules = [ 'ext.uls.inputsettings', 'ext.uls.displaysettings' ];
@@ -85,22 +85,33 @@
}; };
mw.uls.setPreviousLanguages = function ( previousLanguages ) { mw.uls.setPreviousLanguages = function ( previousLanguages ) {
$.cookie( mw.uls.previousLanguagesCookie, try {
JSON.stringify( previousLanguages ), { localStorage.setItem(
path: '/' mw.uls.previousLanguagesStorageKey,
} JSON.stringify( previousLanguages.slice( -5 ) )
); );
} catch ( e ) {}
}; };
mw.uls.getPreviousLanguages = function () { mw.uls.getPreviousLanguages = function () {
var previousLanguages = $.cookie( mw.uls.previousLanguagesCookie ); var previousLanguages = $.cookie( mw.uls.previousLanguagesStorageKey );
if ( !previousLanguages ) { if ( $.isArray( previousLanguages ) ) {
return []; // Migrate data from cookie to localStorage.
mw.uls.setPreviousLanguages( previousLanguages );
$.removeCookie( mw.uls.previousLanguagesStorageKey );
} else {
previousLanguages = [];
} }
// return last 5 language changes try {
return JSON.parse( previousLanguages ).slice( -5 ); previousLanguages.push.apply(
previousLanguages,
JSON.parse( localStorage.getItem( mw.uls.previousLanguagesStorageKey ) )
);
} catch ( e ) {}
return previousLanguages.slice( -5 );
}; };
/** /**