From eff459eea6b2b7b8adffb7f281522527d30382ac Mon Sep 17 00:00:00 2001 From: Santhosh Thottingal Date: Wed, 24 Jul 2013 15:24:52 +0530 Subject: [PATCH] Lazy initialization of language settings for IME menu Initialize it only when first time user clicks on it In a page like Special:Translate where lot of input fields appearing, the previous approach was adding many language settings div to the page. Bug: 48211 Change-Id: If063df6782c6a51ac77ed5531dfa253c7f3ddbc4 --- resources/js/ext.uls.ime.js | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/resources/js/ext.uls.ime.js b/resources/js/ext.uls.ime.js index 8f16b81a..786a4741 100644 --- a/resources/js/ext.uls.ime.js +++ b/resources/js/ext.uls.ime.js @@ -121,18 +121,20 @@ $moreSettingsLink = $( '' ) .addClass( 'uls-ime-more-settings-link' ); - $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. $moreSettingsLink.on( 'click', function ( e ) { + var languageSettings = $( this ).data( 'languagesettings' ); imeselector.hide(); + if ( !languageSettings ) { + $( this ).languagesettings( { + defaultModule: 'input', + onClose: function () { + // on close of input settings, keep focus in input area. + imeselector.$element.focus(); + }, + top: imeselector.$element.offset().top + } ).click(); + } e.stopPropagation(); } );