Use module 'mediawiki.storage' from core to access localStorage

This change requires MediaWiki version 1.26 and removes support for lower
versions.

Bug: T153635
Change-Id: Ia74e16cb08e8cb1f15196a98329e2994b0283edb
This commit is contained in:
Fomafix
2017-01-20 17:19:46 +01:00
parent 5f987e7a49
commit 3ec9a325a4
2 changed files with 8 additions and 29 deletions

View File

@@ -201,6 +201,7 @@
"dependencies": [ "dependencies": [
"ext.uls.common", "ext.uls.common",
"mediawiki.jqueryMsg", "mediawiki.jqueryMsg",
"mediawiki.storage",
"mediawiki.user", "mediawiki.user",
"ext.uls.webfonts" "ext.uls.webfonts"
], ],

View File

@@ -20,24 +20,6 @@
( function ( $, mw ) { ( function ( $, mw ) {
'use strict'; 'use strict';
// Replace with mediawiki.storage when >= MW 1.26
var Store = function ( key ) {
this.key = key;
};
// Returns null if key does not exist according to documentation.
Store.prototype.get = function () {
try {
return localStorage.getItem( this.key );
} catch ( e ) {}
};
Store.prototype.set = function ( value ) {
try {
localStorage.setItem( this.key, value );
} catch ( e ) {}
};
/** /**
* Construct the display settings link * Construct the display settings link
* *
@@ -464,26 +446,22 @@
} }
function initTooltip() { function initTooltip() {
var previousLanguageCodeStore, previousLanguageAutonymStore, module, var module, previousLanguage, currentLanguage, previousAutonym, currentAutonym;
previousLanguage, currentLanguage, previousAutonym, currentAutonym;
if ( !userCanChangeLanguage() ) { if ( !userCanChangeLanguage() ) {
return; return;
} }
previousLanguageCodeStore = new Store( 'uls-previous-language-code' ); previousLanguage = mw.storage.get( 'uls-previous-language-code' );
previousLanguageAutonymStore = new Store( 'uls-previous-language-autonym' );
previousLanguage = previousLanguageCodeStore.get();
currentLanguage = mw.config.get( 'wgUserLanguage' ); currentLanguage = mw.config.get( 'wgUserLanguage' );
previousAutonym = previousLanguageAutonymStore.get(); previousAutonym = mw.storage.get( 'uls-previous-language-autonym' );
currentAutonym = mw.config.get( 'wgULSCurrentAutonym' ); currentAutonym = mw.config.get( 'wgULSCurrentAutonym' );
// If storage is empty, i.e. first visit, then store the current language // If storage is empty, i.e. first visit, then store the current language
// immediately so that we know when it changes. // immediately so that we know when it changes.
if ( !previousLanguage || !previousAutonym ) { if ( !previousLanguage || !previousAutonym ) {
previousLanguageCodeStore.set( currentLanguage ); mw.storage.set( 'uls-previous-language-code', currentLanguage );
previousLanguageAutonymStore.set( currentAutonym ); mw.storage.set( 'uls-previous-language-autonym', currentAutonym );
return; return;
} }
@@ -493,8 +471,8 @@
mw.loader.using( module ).done( function () { mw.loader.using( module ).done( function () {
showUndoTooltip( previousLanguage, previousAutonym ); showUndoTooltip( previousLanguage, previousAutonym );
} ); } );
previousLanguageCodeStore.set( currentLanguage ); mw.storage.set( 'uls-previous-language-code', currentLanguage );
previousLanguageAutonymStore.set( currentAutonym ); mw.storage.set( 'uls-previous-language-autonym', currentAutonym );
// Store this language in a list of frequently used languages // Store this language in a list of frequently used languages
mw.uls.addPreviousLanguage( currentLanguage ); mw.uls.addPreviousLanguage( currentLanguage );
} }