Amire80 has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/61770


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 resources/js/ext.uls.preferences.js
3 files changed, 52 insertions(+), 6 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/UniversalLanguageSelector 
refs/changes/70/61770/1

diff --git a/UniversalLanguageSelector.hooks.php 
b/UniversalLanguageSelector.hooks.php
index 1aa0adc..3bd31be 100644
--- a/UniversalLanguageSelector.hooks.php
+++ b/UniversalLanguageSelector.hooks.php
@@ -295,10 +295,21 @@
        }
 
        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
+                       'default' => $user->getOption( 'uls-ime-enable' )
+               );
+
                return true;
        }
 
diff --git a/UniversalLanguageSelector.i18n.php 
b/UniversalLanguageSelector.i18n.php
index 811a1ab..2149e1e 100644
--- a/UniversalLanguageSelector.i18n.php
+++ b/UniversalLanguageSelector.i18n.php
@@ -27,6 +27,8 @@
 $messages['en'] = array(
        'UniversalLanguageSelector' => 'Universal Language Selector',
        'uls-desc' => 'Gives the user several ways to select a language and to 
adjust language settings',
+
+       'uls-ime-enable-preferences-label' => 'Enable input method tools in the 
Universal Language Selector',
 );
 
 /** Message documentation (Message documentation)
@@ -35,6 +37,8 @@
 $messages['qqq'] = array(
        'UniversalLanguageSelector' => 'Extension name',
        'uls-desc' => 'Extension description',
+       '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}}',
 );
diff --git a/resources/js/ext.uls.preferences.js 
b/resources/js/ext.uls.preferences.js
index 3340438..252647d 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,12 +116,19 @@
                 * Initialize
                 */
                init: function () {
+                       var options;
+
                        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 );
+
+                               if ( mw.user.options.get( 'uls-ime-enable' ) 
!== '1' ) {
+                                       this.preferences.ime.enable = false;
+                               }
                        }
+
                        this.preferences = this.preferences || {};
                },
 
@@ -151,22 +159,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: newchange
Gerrit-Change-Id: I957d9f409b0c29f956bcf8a49187cdf27c4f42f8
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Amire80 <amir.ahar...@mail.huji.ac.il>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to