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