Amire80 has uploaded a new change for review.

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


Change subject: Make cancel reset preferences and apply save and close
......................................................................

Make cancel reset preferences and apply save and close

Bug: 48898
Change-Id: I9f5444ffd57ddf46d197ebdb23a18c0c4600b196
---
M resources/js/ext.uls.inputsettings.js
1 file changed, 26 insertions(+), 8 deletions(-)


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

diff --git a/resources/js/ext.uls.inputsettings.js 
b/resources/js/ext.uls.inputsettings.js
index 685f437..d22e35e 100644
--- a/resources/js/ext.uls.inputsettings.js
+++ b/resources/js/ext.uls.inputsettings.js
@@ -75,6 +75,9 @@
                this.contentLanguage = this.getContentLanguage();
                this.$imes = null;
                this.$parent = $parent;
+
+               this.preferencesCallback = $.noop;
+               this.savedRegistry = $.extend( true, {}, 
$.ime.preferences.registry );
        }
 
        InputSettings.prototype = {
@@ -85,15 +88,21 @@
                 * Render the module into a given target
                 */
                render: function () {
+                       var enabledOnly;
+
                        this.$parent.$settingsPanel.empty();
                        this.$imes = $( 'body' ).data( 'ime' );
                        this.$parent.$settingsPanel.append( this.$template );
+
+                       enabledOnly = this.$template.find( '.enabled-only' );
+
                        if ( $.ime.preferences.isEnabled() ) {
-                               this.$template.find( '.enabled-only' 
).removeClass( 'hide' );
+                               enabledOnly.removeClass( 'hide' );
                        } else {
                                // Hide the language list and ime selector
-                               this.$template.find( '.enabled-only' 
).addClass( 'hide' );
+                               enabledOnly.addClass( 'hide' );
                        }
+
                        this.prepareLanguages();
                        this.prepareToggleButton();
                        this.$template.i18n();
@@ -106,6 +115,10 @@
                 */
                enableApplyButton: function () {
                        this.$template.find( 'button.uls-input-settings-apply' 
).removeAttr( 'disabled' );
+               },
+
+               disableApplyButton: function () {
+                       this.$template.find( 'button.uls-input-settings-apply' 
).prop( 'disabled', true );
                },
 
                prepareInputmethods: function ( language ) {
@@ -410,7 +423,14 @@
                        } );
 
                        inputSettings.$template.find( 
'button.uls-input-settings-cancel' ).on( 'click', function () {
+                               inputSettings.preferencesCallback = $.noop;
+                               inputSettings.disableApplyButton();
+
                                inputSettings.close();
+
+                               // Reload preferences and redraw
+                               $.ime.preferences.registry = $.extend( true, 
{}, inputSettings.savedRegistry );
+                               inputSettings.render();
                        } );
 
                        $imeListContainer.on( 'change', 
'input:radio[name=ime]:checked', function () {
@@ -436,9 +456,7 @@
                 */
                disableInputTools: function () {
                        $.ime.preferences.disable();
-                       $.ime.preferences.save( function () {
-                               mw.ime.disable();
-                       } );
+                       this.preferencesCallback = mw.ime.disable;
                        this.$template.find( '.enabled-only' ).addClass( 'hide' 
);
                        this.prepareToggleButton();
                },
@@ -448,10 +466,9 @@
                 */
                enableInputTools: function () {
                        $.ime.preferences.enable();
-                       $.ime.preferences.save( function () {
-                               mw.ime.setup();
-                       } );
+                       this.preferencesCallback = mw.ime.setup;
                        this.$template.find( '.enabled-only' ).removeClass( 
'hide' );
+                       this.$template[0].scrollIntoView();
                        this.prepareToggleButton();
                },
 
@@ -491,6 +508,7 @@
                        // Save the preferences
                        $.ime.preferences.save( function ( result ) {
                                // closure for not losing the scope
+                               inputSettings.preferencesCallback();
                                inputSettings.onSave( result );
                        } );
                }

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I9f5444ffd57ddf46d197ebdb23a18c0c4600b196
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/UniversalLanguageSelector
Gerrit-Branch: master
Gerrit-Owner: Amire80 <[email protected]>

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

Reply via email to