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 () { render: function () {
// 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.
var modules = $.fn.languagesettings.modules; var modules = $.fn.languagesettings.modules;
var firstModule = modules[this.options.defaultModule]; var defaultModule = this.options.defaultModule;
for ( var moduleName in modules ) { for ( var moduleName in modules ) {
if ( modules.hasOwnProperty( moduleName ) ) { if ( modules.hasOwnProperty( moduleName ) ) {
if ( !firstModule ) { if ( !defaultModule ) {
firstModule = new modules[moduleName]( this ); defaultModule = moduleName;
} }
// Call render function on the current setting module. // 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 $settingsMenuItems = this.$window.find( ".settings-menu-items" );
var module = new $.fn.languagesettings.modules[moduleName]( this ); var module = new $.fn.languagesettings.modules[moduleName]( this );
var $settingsTitle = $( "<div>" ) var $settingsTitle = $( "<div>" )
@@ -109,6 +111,11 @@
module.render(); module.render();
$( this ).addClass( 'active' ); $( this ).addClass( 'active' );
} ); } );
if ( active ) {
module.render();
$settingsLink.addClass( 'active' );
}
}, },
show: function () { show: function () {