Fix Bug 39529 - Display settings section should be selected by default

* add a parameter acitve to renderModule so that it is highlighted
  and active
* move the default module render call to renderModule method

Change-Id: I5dca8586dddf1065b4e85642a40c3558f0b6586b
This commit is contained in:
Santhosh Thottingal
2012-09-07 17:25:02 +05:30
parent 5b3f7cc269
commit 805482d9cd

View File

@@ -71,22 +71,24 @@
render: function () {
// Get the name of all registered modules and list them in left side menu.
var modules = $.fn.languagesettings.modules;
var firstModule = modules[this.options.defaultModule];
var defaultModule = this.options.defaultModule;
for ( var moduleName in modules ) {
if ( modules.hasOwnProperty( moduleName ) ) {
if ( !firstModule ) {
firstModule = new modules[moduleName]( this );
if ( !defaultModule ) {
defaultModule = moduleName;
}
// Call render function on the current setting module.
this.renderModule( moduleName );
this.renderModule( moduleName, defaultModule === moduleName );
}
}
// Show the default module
firstModule.render();
},
renderModule: function ( moduleName ) {
/**
* Render the link and settings area for a language setting module.
* @param moduleName String Name of the setting module
* @param active boolean Make this module active and show by default
*/
renderModule: function ( moduleName, active ) {
var $settingsMenuItems = this.$window.find( ".settings-menu-items" );
var module = new $.fn.languagesettings.modules[moduleName]( this );
var $settingsTitle = $( "<div>" )
@@ -109,6 +111,11 @@
module.render();
$( this ).addClass( 'active' );
} );
if ( active ) {
module.render();
$settingsLink.addClass( 'active' );
}
},
show: function () {