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:
@@ -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"
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -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 );
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user