Santhosh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/76469
Change subject: Load jquery.ime only when user focus on editable fields
......................................................................
Load jquery.ime only when user focus on editable fields
To reduce javascript size for page load.
Change-Id: Ibf2ccd5b5501720837051d6e268b122e8a9f8590
---
M Resources.php
M resources/js/ext.uls.ime.js
M resources/js/ext.uls.inputsettings.js
3 files changed, 39 insertions(+), 28 deletions(-)
git pull
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UniversalLanguageSelector
refs/changes/69/76469/1
diff --git a/Resources.php b/Resources.php
index 6ce8de8..6ae9c6b 100644
--- a/Resources.php
+++ b/Resources.php
@@ -33,9 +33,11 @@
$wgResourceModules['ext.uls.ime'] = array(
'scripts' => 'resources/js/ext.uls.ime.js',
'dependencies' => array(
- 'jquery.ime',
'ext.uls.init',
'ext.uls.preferences',
+ ),
+ 'messages' => array(
+ 'uls-ime-helppage',
),
) + $resourcePaths;
@@ -75,10 +77,8 @@
'dependencies' => array(
'ext.uls.languagesettings',
'ext.uls.ime',
+ 'jquery.ime',
'jquery.i18n',
- ),
- 'messages' => array(
- 'uls-ime-helppage',
),
) + $resourcePaths;
diff --git a/resources/js/ext.uls.ime.js b/resources/js/ext.uls.ime.js
index cc1df4e..e62180a 100644
--- a/resources/js/ext.uls.ime.js
+++ b/resources/js/ext.uls.ime.js
@@ -19,7 +19,7 @@
( function ( $, mw, document, undefined ) {
'use strict';
- var mwImeRulesPath, inputSelector, inputPreferences;
+ var mwImeRulesPath, inputSelector, inputPreferences, ulsIMEPreferences,
customHelpLink;
mwImeRulesPath = mw.config.get( 'wgExtensionAssetsPath' ) +
'/UniversalLanguageSelector/lib/jquery.ime/';
@@ -57,8 +57,7 @@
return unique.slice( 0, 6 );
};
- // Extend the ime preference system
- $.extend( $.ime.preferences, {
+ ulsIMEPreferences = {
save: function ( callback ) {
if ( !this.registry.isDirty ) {
@@ -102,15 +101,10 @@
getDefaultLanguage: function () {
return mw.config.get( 'wgContentLanguage' );
}
- } );
+ };
- // MediaWiki specific overrides for jquery.ime
- $.extend( $.ime.defaults, {
- imePath: mwImeRulesPath
- } );
-
- // Add a 'more settings' link that takes to input settings of ULS
- $.fn.imeselector.Constructor.prototype.helpLink = function () {
+ // Add a 'more setttings' link that takes to input settings of ULS
+ customHelpLink = function () {
var $disableInputToolsLink, $moreSettingsLink,
imeselector = this;
@@ -173,23 +167,44 @@
$( inputSelector ).trigger( 'destroy.ime' );
};
+ mw.ime.init = function () {
+ // Extend the ime preference system
+ $.extend( $.ime.preferences, ulsIMEPreferences );
+ // MediaWiki specific overrides for jquery.ime
+ $.extend( $.ime.defaults, {
+ imePath: mwImeRulesPath
+ } );
+ // Load the ime preferences
+ $.ime.preferences.load();
+ $.fn.imeselector.Constructor.prototype.helpLink =
customHelpLink;
+ };
+
mw.ime.setup = function () {
+ if ( $.ime ) {
+ mw.ime.init();
+ }
$( 'body' ).on( 'focus.ime', inputSelector, function () {
var imeselector, $input, noImeSelector;
- // It's possible to disable IME through the settings
- // panels before it was initialized, so we need to check
- // that it's supposed to be initialized
- if ( !$.ime.preferences.isEnabled() ) {
+ noImeSelector = mw.config.get( 'wgULSNoImeSelectors'
).join( ', ' );
+ $input = $( this );
+
+ if ( !$.ime ) {
+ mw.loader.using( 'jquery.ime', function () {
+ mw.ime.init();
+ $input.trigger( 'focus.ime' );
+ } );
return;
}
- $input = $( this );
- noImeSelector = mw.config.get( 'wgULSNoImeSelectors'
).join( ', ' );
+ if ( $input.is( '.noime' ) ||
!$.ime.preferences.isEnabled() ) {
+ return;
+ }
if ( noImeSelector.length && $input.is( noImeSelector )
) {
$input.addClass( 'noime' );
+ return;
}
$input.ime( {
@@ -238,12 +253,7 @@
$( document ).ready( function () {
mw.uls.init( function () {
- // Load the ime preferences
- $.ime.preferences.load();
-
- if ( $.ime.preferences.isEnabled() ) {
- mw.ime.setup();
- }
+ mw.ime.setup();
} );
} );
diff --git a/resources/js/ext.uls.inputsettings.js
b/resources/js/ext.uls.inputsettings.js
index ae0cc72..df263cf 100644
--- a/resources/js/ext.uls.inputsettings.js
+++ b/resources/js/ext.uls.inputsettings.js
@@ -94,7 +94,8 @@
this.$parent.$settingsPanel.append( this.$template );
$enabledOnly = this.$template.find( '.enabled-only' );
-
+ // ime system is lazy loaded, make sure it is
initialized
+ mw.ime.init();
if ( $.ime.preferences.isEnabled() ) {
$enabledOnly.removeClass( 'hide' );
} else {
--
To view, visit https://gerrit.wikimedia.org/r/76469
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ibf2ccd5b5501720837051d6e268b122e8a9f8590
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits