Merge "Lazy initilization of language settings from ULS"

This commit is contained in:
jenkins-bot
2013-07-26 11:20:09 +00:00
committed by Gerrit Code Review

View File

@@ -22,6 +22,7 @@
/** /**
* Construct the display settings link * Construct the display settings link
* @return {jQuery}
*/ */
function displaySettings() { function displaySettings() {
var $displaySettingsTitle, displaySettingsText, $displaySettings; var $displaySettingsTitle, displaySettingsText, $displaySettings;
@@ -40,6 +41,7 @@
/** /**
* Construct the input settings link * Construct the input settings link
* @returns {jQuery}
*/ */
function inputSettings() { function inputSettings() {
var $inputSettingsTitle, inputSettingsText, $inputSettings; var $inputSettingsTitle, inputSettingsText, $inputSettings;
@@ -61,14 +63,19 @@
* @param {Object} uls The ULS object * @param {Object} uls The ULS object
*/ */
function addDisplaySettings( uls ) { function addDisplaySettings( uls ) {
var $displaySettings = displaySettings(), var $displaySettings = displaySettings();
ulsPosition = mw.config.get( 'wgULSPosition' ),
anonMode = ( mw.user.isAnon() && uls.$menu.find( '#settings-block' ).append( $displaySettings );
!mw.config.get( 'wgULSAnonCanChangeLanguage' ) ), $displaySettings.on( 'click', function () {
var languagesettings = $displaySettings.data( 'languagesettings' ),
displaySettingsOptions = { displaySettingsOptions = {
defaultModule: 'display' 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, // If the ULS trigger is shown in the top personal menu,
// closing the display settings must show the main ULS // closing the display settings must show the main ULS
// languages list, unless we are in anon mode and thus // languages list, unless we are in anon mode and thus
@@ -79,10 +86,9 @@
}; };
} }
$.extend( displaySettingsOptions, uls.position() ); $.extend( displaySettingsOptions, uls.position() );
$displaySettings.languagesettings( displaySettingsOptions )
uls.$menu.find( '#settings-block' ).append( $displaySettings ); .click();
$displaySettings.languagesettings( displaySettingsOptions ); }
$displaySettings.on( 'click', function () {
uls.hide(); uls.hide();
} ); } );
} }
@@ -92,12 +98,14 @@
* @param {Object} uls The ULS object * @param {Object} uls The ULS object
*/ */
function addInputSettings( uls ) { function addInputSettings( uls ) {
var $inputSettings, position; var $inputSettings = inputSettings();
$inputSettings = inputSettings();
uls.$menu.find( '#settings-block' ).append( $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( { $inputSettings.languagesettings( {
defaultModule: 'input', defaultModule: 'input',
onClose: function () { onClose: function () {
@@ -105,9 +113,8 @@
}, },
top: position.top, top: position.top,
left: position.left left: position.left
} ); } ).click();
}
$inputSettings.on( 'click', function () {
uls.hide(); uls.hide();
} ); } );
} }