Delay loading of language settings javascript
Load them when language settings is opened using cog or ULS icon click Change-Id: I472497c549bff0fd578156fa0113dae2d6a7a7fb
This commit is contained in:
committed by
Amir E. Aharoni
parent
b96e6ed20a
commit
d92c75518b
@@ -88,8 +88,11 @@ $wgResourceModules['ext.uls.interface'] = array(
|
|||||||
'dependencies' => array(
|
'dependencies' => array(
|
||||||
'ext.uls.init',
|
'ext.uls.init',
|
||||||
'jquery.tipsy',
|
'jquery.tipsy',
|
||||||
'ext.uls.displaysettings',
|
'mediawiki.user',
|
||||||
'ext.uls.inputsettings',
|
// We can not delay webfonts loading since it is required
|
||||||
|
// immediately after page load
|
||||||
|
'ext.uls.webfonts',
|
||||||
|
'ext.uls.ime',
|
||||||
),
|
),
|
||||||
'messages' => array(
|
'messages' => array(
|
||||||
'uls-plang-title-languages',
|
'uls-plang-title-languages',
|
||||||
|
|||||||
@@ -121,6 +121,17 @@
|
|||||||
$moreSettingsLink = $( '<span>' )
|
$moreSettingsLink = $( '<span>' )
|
||||||
.addClass( 'uls-ime-more-settings-link' );
|
.addClass( 'uls-ime-more-settings-link' );
|
||||||
|
|
||||||
|
mw.loader.using( mw.uls.languageSettingsModules, function () {
|
||||||
|
$moreSettingsLink.languagesettings( {
|
||||||
|
defaultModule: 'input',
|
||||||
|
onClose: function () {
|
||||||
|
// on close of input settings, keep focus in input area.
|
||||||
|
imeselector.$element.focus();
|
||||||
|
},
|
||||||
|
top: imeselector.$element.offset().top
|
||||||
|
} );
|
||||||
|
} );
|
||||||
|
|
||||||
// Hide the menu.
|
// Hide the menu.
|
||||||
$moreSettingsLink.on( 'click', function ( e ) {
|
$moreSettingsLink.on( 'click', function ( e ) {
|
||||||
var languageSettings = $( this ).data( 'languagesettings' );
|
var languageSettings = $( this ).data( 'languagesettings' );
|
||||||
|
|||||||
@@ -38,6 +38,7 @@
|
|||||||
|
|
||||||
mw.uls = mw.uls || {};
|
mw.uls = mw.uls || {};
|
||||||
mw.uls.previousLanguagesCookie = 'uls-previous-languages';
|
mw.uls.previousLanguagesCookie = 'uls-previous-languages';
|
||||||
|
mw.uls.languageSettingsModules = ['ext.uls.inputsettings', 'ext.uls.displaysettings'];
|
||||||
/**
|
/**
|
||||||
* Change the language of wiki using setlang URL parameter
|
* Change the language of wiki using setlang URL parameter
|
||||||
* @param {String} language
|
* @param {String} language
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
$displaySettings = $( '<div>' )
|
$displaySettings = $( '<div>' )
|
||||||
.addClass( 'display-settings-block' )
|
.addClass( 'display-settings-block' )
|
||||||
.prop( 'id', 'display-settings-block' )
|
.prop( 'id', 'display-settings-block' )
|
||||||
.append( $displaySettingsTitle );
|
.append( $displaySettingsTitle.i18n() );
|
||||||
|
|
||||||
return $displaySettings;
|
return $displaySettings;
|
||||||
}
|
}
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
$inputSettings = $( '<div>' )
|
$inputSettings = $( '<div>' )
|
||||||
.addClass( 'input-settings-block' )
|
.addClass( 'input-settings-block' )
|
||||||
.prop( 'id', 'input-settings-block' )
|
.prop( 'id', 'input-settings-block' )
|
||||||
.append( $inputSettingsTitle );
|
.append( $inputSettingsTitle.i18n() );
|
||||||
|
|
||||||
return $inputSettings;
|
return $inputSettings;
|
||||||
}
|
}
|
||||||
@@ -86,8 +86,10 @@
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
$.extend( displaySettingsOptions, uls.position() );
|
$.extend( displaySettingsOptions, uls.position() );
|
||||||
|
mw.loader.using( mw.uls.languageSettingsModules, function () {
|
||||||
$displaySettings.languagesettings( displaySettingsOptions )
|
$displaySettings.languagesettings( displaySettingsOptions )
|
||||||
.click();
|
.click();
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
uls.hide();
|
uls.hide();
|
||||||
} );
|
} );
|
||||||
@@ -106,6 +108,7 @@
|
|||||||
languagesettings = $inputSettings.data( 'languagesettings' );
|
languagesettings = $inputSettings.data( 'languagesettings' );
|
||||||
|
|
||||||
if ( !languagesettings ) {
|
if ( !languagesettings ) {
|
||||||
|
mw.loader.using( mw.uls.languageSettingsModules, function () {
|
||||||
$inputSettings.languagesettings( {
|
$inputSettings.languagesettings( {
|
||||||
defaultModule: 'input',
|
defaultModule: 'input',
|
||||||
onClose: function () {
|
onClose: function () {
|
||||||
@@ -114,6 +117,7 @@
|
|||||||
top: position.top,
|
top: position.top,
|
||||||
left: position.left
|
left: position.left
|
||||||
} ).click();
|
} ).click();
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
uls.hide();
|
uls.hide();
|
||||||
} );
|
} );
|
||||||
@@ -344,7 +348,10 @@
|
|||||||
this.position();
|
this.position();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
mw.loader.using( mw.uls.languageSettingsModules, function () {
|
||||||
$ulsTrigger.languagesettings( langaugeSettingsOptions ).click();
|
$ulsTrigger.languagesettings( langaugeSettingsOptions ).click();
|
||||||
|
} );
|
||||||
|
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
@@ -353,7 +360,9 @@
|
|||||||
var languagesettings = $ulsTrigger.data( 'languagesettings' );
|
var languagesettings = $ulsTrigger.data( 'languagesettings' );
|
||||||
|
|
||||||
if ( !languagesettings ) {
|
if ( !languagesettings ) {
|
||||||
|
mw.loader.using( mw.uls.languageSettingsModules, function () {
|
||||||
$ulsTrigger.languagesettings().click();
|
$ulsTrigger.languagesettings().click();
|
||||||
|
} );
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
@@ -366,10 +375,11 @@
|
|||||||
// ULS options that are common to all modes of showing
|
// ULS options that are common to all modes of showing
|
||||||
ulsOptions = {
|
ulsOptions = {
|
||||||
onReady: function () {
|
onReady: function () {
|
||||||
if ( $.fn.languagesettings ) {
|
var uls = this;
|
||||||
addDisplaySettings( this );
|
mw.loader.using( mw.uls.languageSettingsModules, function () {
|
||||||
addInputSettings( this );
|
addDisplaySettings( uls );
|
||||||
}
|
addInputSettings( uls );
|
||||||
|
} );
|
||||||
},
|
},
|
||||||
onSelect: function ( language ) {
|
onSelect: function ( language ) {
|
||||||
mw.uls.changeLanguage( language );
|
mw.uls.changeLanguage( language );
|
||||||
|
|||||||
Reference in New Issue
Block a user