jenkins-bot has submitted this change and it was merged.

Change subject: Add a MediaWiki preference for enabling ULS IME
......................................................................


Add a MediaWiki preference for enabling ULS IME

Bug: 47240
Change-Id: I957d9f409b0c29f956bcf8a49187cdf27c4f42f8
---
M UniversalLanguageSelector.hooks.php
M UniversalLanguageSelector.i18n.php
M UniversalLanguageSelector.php
M resources/js/ext.uls.preferences.js
4 files changed, 63 insertions(+), 6 deletions(-)

Approvals:
  Siebrand: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/UniversalLanguageSelector.hooks.php 
b/UniversalLanguageSelector.hooks.php
index 1aa0adc..c8e2822 100644
--- a/UniversalLanguageSelector.hooks.php
+++ b/UniversalLanguageSelector.hooks.php
@@ -295,10 +295,20 @@
        }
 
        public static function onGetPreferences( $user, &$preferences ) {
+               // The detailed preferences for different layouts.
+               // Saved as JSON and modifiable through the ULS screens.
                $preferences['uls-preferences'] = array(
                        'type' => 'api',
                );
 
+               // A checkbox in the general MediaWiki preferences screen
+               // to enable or disable IME in ULS
+               $preferences['uls-ime-enable'] = array(
+                       'type' => 'toggle',
+                       'label-message' => 'uls-ime-enable-preferences-label',
+                       'section' => 'editing/advancedediting', // under 
'Advanced options' section of 'Editing' tab
+               );
+
                return true;
        }
 
diff --git a/UniversalLanguageSelector.i18n.php 
b/UniversalLanguageSelector.i18n.php
index caa3380..e4a640d 100644
--- a/UniversalLanguageSelector.i18n.php
+++ b/UniversalLanguageSelector.i18n.php
@@ -30,6 +30,7 @@
        'uls-desc' => 'Gives the user several ways to select a language and to 
adjust language settings',
 
        'uls-plang-title-languages' => 'Languages',
+       'uls-ime-enable-preferences-label' => 'Enable input methods',
 );
 
 /** Message documentation (Message documentation)
@@ -42,6 +43,10 @@
        'uls-plang-title-languages' => 'A title for the are in the sidebar in 
which the interlanguage links are supposed to appear.
 This title is shown when there are no interlanguage links there, but an icon 
that enables the ULS is shown.
 {{Identical|Language}}',
+       'uls-ime-enable-preferences-label' => 'A label for a user preference.',
+
+       'uls-select-content-language' => 'Main heading in the language selector 
popup.
+{{Identical|Select language}}',
 );
 
 /** Arabic (العربية)
diff --git a/UniversalLanguageSelector.php b/UniversalLanguageSelector.php
index c68047b..b63222e 100644
--- a/UniversalLanguageSelector.php
+++ b/UniversalLanguageSelector.php
@@ -137,6 +137,7 @@
 $wgHooks['SkinTemplateOutputPageBeforeExec'][] = 
'UniversalLanguageSelectorHooks::onSkinTemplateOutputPageBeforeExec';
 
 $wgDefaultUserOptions['uls-preferences'] = '';
+$wgDefaultUserOptions['uls-ime-enable'] = 1;
 $wgHooks['GetPreferences'][] = 
'UniversalLanguageSelectorHooks::onGetPreferences';
 
 $wgExtensionFunctions[] = function() {
diff --git a/resources/js/ext.uls.preferences.js 
b/resources/js/ext.uls.preferences.js
index 3340438..d60bd30 100644
--- a/resources/js/ext.uls.preferences.js
+++ b/resources/js/ext.uls.preferences.js
@@ -104,6 +104,7 @@
 
        ULSPreferences = function () {
                this.preferenceName = 'uls-preferences';
+               this.imeEnablePreferenceName = 'uls-ime-enable',
                this.username = mw.user.getName();
                this.isAnon = mw.user.isAnon();
                this.preferences = null;
@@ -115,13 +116,30 @@
                 * Initialize
                 */
                init: function () {
+                       var options,
+                               ulsImeEnable = mw.user.options.get( 
this.imeEnablePreferenceName );
+
                        if ( this.isAnon ) {
                                this.preferences = $.jStorage.get( 
this.preferenceName );
                        } else {
-                               var options = mw.user.options.get( 
this.preferenceName );
+                               options = mw.user.options.get( 
this.preferenceName );
                                this.preferences = $.parseJSON( options );
+
                        }
+
                        this.preferences = this.preferences || {};
+
+                       if ( this.preferences.ime === undefined ) {
+                               this.preferences.ime = {};
+                       }
+
+                       if ( ulsImeEnable === undefined ) {
+                               this.preferences.ime.enable = mw.config.get( 
'wgULSIMEEnabled' );
+                       } else if ( ulsImeEnable === 1 || ulsImeEnable === '1' 
) {
+                               this.preferences.ime.enable = true;
+                       } else {
+                               this.preferences.ime.enable = false;
+                       }
                },
 
                /**
@@ -151,22 +169,45 @@
                save: function ( callback ) {
                        var ulsPreferences = this;
 
+
                        callback = callback || $.noop;
                        if ( this.isAnon ) {
                                // Anonymous user. Save preferences in local 
storage
                                $.jStorage.set( this.preferenceName, 
this.preferences );
                                callback.call( this, true );
                        } else {
+                               var successFunction, failFunction;
+
+                               successFunction = function () {
+                                       callback.call( this, true );
+                               };
+                               failFunction = function () {
+                                       callback.call( this, false );
+                               };
+
                                // Logged in user. Use MW APIs to change 
preferences
                                saveOptionsWithToken( {
                                        action: 'options',
                                        optionname: 
ulsPreferences.preferenceName,
                                        optionvalue: $.toJSON( 
ulsPreferences.preferences )
-                               }, function () {
-                                       callback.call( this, true );
-                               }, function () {
-                                       callback.call( this, false );
-                               } );
+                               },
+                                       successFunction,
+                                       failFunction
+                               );
+
+                               if ( ulsPreferences.preferences.ime !== 
undefined &&
+                                       ulsPreferences.preferences.ime.enable 
!== undefined
+                               ) {
+                                       // Logged in user. Use MW APIs to 
change preferences
+                                       saveOptionsWithToken( {
+                                               action: 'options',
+                                               optionname: 
ulsPreferences.imeEnablePreferenceName,
+                                               optionvalue: 
ulsPreferences.preferences.ime.enable ? '1' : ''
+                                       },
+                                               successFunction,
+                                               failFunction
+                                       );
+                               }
                        }
                }
        };

-- 
To view, visit https://gerrit.wikimedia.org/r/61770
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I957d9f409b0c29f956bcf8a49187cdf27c4f42f8
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>
Gerrit-Reviewer: Amire80 <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Pginer <[email protected]>
Gerrit-Reviewer: Siebrand <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to