Merge "Cleanup ext.uls.languagesettings.js"

This commit is contained in:
jenkins-bot
2013-06-17 05:01:40 +00:00
committed by Gerrit Code Review

View File

@@ -62,26 +62,24 @@
this.hide(); this.hide();
}, },
// Register all event listeners to the ULS language settings here.
listen: function () { listen: function () {
var langSettings = this; this.$element.on( 'click', $.proxy( this.click, this ) );
// Register all event listeners to the ULS language settings here. this.$window.find( '#languagesettings-close' )
langSettings.$element.on( 'click', $.proxy( langSettings.click, langSettings ) ); .on( 'click', $.proxy( this.close, this ) );
langSettings.$window.find( '#languagesettings-close' )
.on( 'click', $.proxy( langSettings.close, langSettings ) );
}, },
render: function () { render: function () {
var modules, defaultModule, moduleName; var moduleName,
defaultModule = this.options.defaultModule;
// Get the name of all registered modules and list them in left side menu. // Get the name of all registered modules and list them in left side menu.
modules = $.fn.languagesettings.modules; for ( moduleName in $.fn.languagesettings.modules ) {
defaultModule = this.options.defaultModule; if ( $.fn.languagesettings.modules.hasOwnProperty( moduleName ) ) {
for ( moduleName in modules ) {
if ( modules.hasOwnProperty( moduleName ) ) {
if ( !defaultModule ) { if ( !defaultModule ) {
defaultModule = moduleName; defaultModule = moduleName;
} }
// Call render function on the current setting module. // Call render function on the current setting module.
this.renderModule( moduleName, defaultModule === moduleName ); this.renderModule( moduleName, defaultModule === moduleName );
} }
@@ -94,11 +92,11 @@
* @param active boolean Make this module active and show by default * @param active boolean Make this module active and show by default
*/ */
renderModule: function ( moduleName, active ) { renderModule: function ( moduleName, active ) {
var $settingsMenuItems, module, $settingsText, $settingsTitle, $settingsLink, var $settingsTitle, $settingsText, $settingsLink,
languageSettings = this; languageSettings = this,
module = new $.fn.languagesettings.modules[moduleName]( languageSettings ),
$settingsMenuItems = languageSettings.$window.find( '.settings-menu-items' );
$settingsMenuItems = languageSettings.$window.find( '.settings-menu-items' );
module = new $.fn.languagesettings.modules[moduleName]( languageSettings );
$settingsTitle = $( '<div>' ) $settingsTitle = $( '<div>' )
.addClass( 'settings-title' ) .addClass( 'settings-title' )
.text( module.name ); .text( module.name );
@@ -109,19 +107,21 @@
.addClass( moduleName + '-settings-block menu-section' ) .addClass( moduleName + '-settings-block menu-section' )
.prop( 'id', moduleName + '-settings-block' ) .prop( 'id', moduleName + '-settings-block' )
.data( 'module', module ) .data( 'module', module )
.append( $settingsTitle ) .append(
.append( $settingsText ); $settingsTitle,
$settingsText
);
$settingsMenuItems.append( $settingsLink ); $settingsMenuItems.append( $settingsLink );
$settingsLink.on( 'click', function () { $settingsLink.on( 'click', function () {
var module = $( this ).data( 'module' ); var $this = $( this );
module.render(); $this.data( 'module' ).render();
// re-position the window and scroll in to view if required. // re-position the window and scroll in to view if required.
languageSettings.position(); languageSettings.position();
$settingsMenuItems.find( '.menu-section' ).removeClass( 'active' ); $settingsMenuItems.find( '.menu-section' ).removeClass( 'active' );
$( this ).addClass( 'active' ); $this.addClass( 'active' );
} ); } );
if ( active ) { if ( active ) {
@@ -150,9 +150,11 @@
this.render(); this.render();
this.initialized = true; this.initialized = true;
} }
this.$window.i18n(); this.$window.i18n();
this.shown = true; this.shown = true;
this.$window.show(); this.$window.show();
// Every time we show this window, make sure the current // Every time we show this window, make sure the current
// settings panels is upto date. So just click on active menu item. // settings panels is upto date. So just click on active menu item.
this.$window.find( '.input-settings-block.active' ).click(); this.$window.find( '.input-settings-block.active' ).click();
@@ -189,6 +191,7 @@
*/ */
close: function () { close: function () {
this.hide(); this.hide();
if ( this.options.onClose ) { if ( this.options.onClose ) {
this.options.onClose(); this.options.onClose();
} }
@@ -212,6 +215,7 @@
if ( !data ) { if ( !data ) {
$this.data( 'languagesettings', ( data = new LanguageSettings( this, options ) ) ); $this.data( 'languagesettings', ( data = new LanguageSettings( this, options ) ) );
} }
if ( typeof option === 'string' ) { if ( typeof option === 'string' ) {
data[option](); data[option]();
} }
@@ -229,5 +233,4 @@
}; };
$.fn.languagesettings.Constructor = LanguageSettings; $.fn.languagesettings.Constructor = LanguageSettings;
}( jQuery ) ); }( jQuery ) );