Lazy initilization of language settings from ULS
For personal toolbar position, initialize langauge settings only after user clicks on the settings links Bug: 48211 Change-Id: Ib3e2372e982de890db614a81c06fbbe170ce0d01
This commit is contained in:
@@ -22,6 +22,7 @@
|
||||
|
||||
/**
|
||||
* Construct the display settings link
|
||||
* @return {jQuery}
|
||||
*/
|
||||
function displaySettings() {
|
||||
var $displaySettingsTitle, displaySettingsText, $displaySettings;
|
||||
@@ -40,6 +41,7 @@
|
||||
|
||||
/**
|
||||
* Construct the input settings link
|
||||
* @returns {jQuery}
|
||||
*/
|
||||
function inputSettings() {
|
||||
var $inputSettingsTitle, inputSettingsText, $inputSettings;
|
||||
@@ -61,14 +63,19 @@
|
||||
* @param {Object} uls The ULS object
|
||||
*/
|
||||
function addDisplaySettings( uls ) {
|
||||
var $displaySettings = displaySettings(),
|
||||
ulsPosition = mw.config.get( 'wgULSPosition' ),
|
||||
anonMode = ( mw.user.isAnon() &&
|
||||
!mw.config.get( 'wgULSAnonCanChangeLanguage' ) ),
|
||||
var $displaySettings = displaySettings();
|
||||
|
||||
uls.$menu.find( '#settings-block' ).append( $displaySettings );
|
||||
$displaySettings.on( 'click', function () {
|
||||
var languagesettings = $displaySettings.data( 'languagesettings' ),
|
||||
displaySettingsOptions = {
|
||||
defaultModule: 'display'
|
||||
};
|
||||
},
|
||||
ulsPosition = mw.config.get( 'wgULSPosition' ),
|
||||
anonMode = ( mw.user.isAnon() &&
|
||||
!mw.config.get( 'wgULSAnonCanChangeLanguage' ) );
|
||||
|
||||
if ( !languagesettings ) {
|
||||
// If the ULS trigger is shown in the top personal menu,
|
||||
// closing the display settings must show the main ULS
|
||||
// languages list, unless we are in anon mode and thus
|
||||
@@ -79,10 +86,9 @@
|
||||
};
|
||||
}
|
||||
$.extend( displaySettingsOptions, uls.position() );
|
||||
|
||||
uls.$menu.find( '#settings-block' ).append( $displaySettings );
|
||||
$displaySettings.languagesettings( displaySettingsOptions );
|
||||
$displaySettings.on( 'click', function () {
|
||||
$displaySettings.languagesettings( displaySettingsOptions )
|
||||
.click();
|
||||
}
|
||||
uls.hide();
|
||||
} );
|
||||
}
|
||||
@@ -92,12 +98,14 @@
|
||||
* @param {Object} uls The ULS object
|
||||
*/
|
||||
function addInputSettings( uls ) {
|
||||
var $inputSettings, position;
|
||||
var $inputSettings = inputSettings();
|
||||
|
||||
$inputSettings = inputSettings();
|
||||
uls.$menu.find( '#settings-block' ).append( $inputSettings );
|
||||
position = uls.position();
|
||||
$inputSettings.on( 'click', function () {
|
||||
var position = uls.position(),
|
||||
languagesettings = $inputSettings.data( 'languagesettings' );
|
||||
|
||||
if ( !languagesettings ) {
|
||||
$inputSettings.languagesettings( {
|
||||
defaultModule: 'input',
|
||||
onClose: function () {
|
||||
@@ -105,9 +113,8 @@
|
||||
},
|
||||
top: position.top,
|
||||
left: position.left
|
||||
} );
|
||||
|
||||
$inputSettings.on( 'click', function () {
|
||||
} ).click();
|
||||
}
|
||||
uls.hide();
|
||||
} );
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user