Santhosh has uploaded a new change for review.

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

Change subject: MT: Store the MT provider preference in localstorage
......................................................................

MT: Store the MT provider preference in localstorage

* Use the stored preference as default MT provider.
* Do not show the new MT preferences announcement if there is a stored
  MT prrovider preference.

Bug: T128059
Change-Id: Ie13ea5c6c1911746888c67224ccee9212f5635dc
---
M extension.json
M modules/tools/ext.cx.tools.mt.js
2 files changed, 35 insertions(+), 7 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/ContentTranslation 
refs/changes/65/275365/1

diff --git a/extension.json b/extension.json
index 0959b2b..544dca7 100644
--- a/extension.json
+++ b/extension.json
@@ -642,7 +642,8 @@
                                "ext.cx.tools.manager",
                                "ext.cx.translation",
                                "ext.cx.translationview",
-                               "ext.cx.util"
+                               "ext.cx.util",
+                               "mediawiki.storage"
                        ]
                },
                "ext.cx.tools.reference": {
diff --git a/modules/tools/ext.cx.tools.mt.js b/modules/tools/ext.cx.tools.mt.js
index 098a52c..9671ec2 100644
--- a/modules/tools/ext.cx.tools.mt.js
+++ b/modules/tools/ext.cx.tools.mt.js
@@ -78,7 +78,8 @@
         * @return {jQuery.Promise}
         */
        function getProviders( from, to ) {
-               var fetchProvidersUrl;
+               var fetchProvidersUrl,
+                       storedMTProvider;
 
                if ( MTControlCard.provider ) {
                        return $.Deferred().resolve();
@@ -105,8 +106,16 @@
                                                MTControlCard.provider = 
disableMT;
                                        }
                                } else {
-                                       // TODO: Consider user preferences
-                                       MTControlCard.provider = 
MTControlCard.providers[ 0 ];
+                                       // There are MT providers. If there is 
a saved mt provider preference
+                                       // select that from the providers. 
Otherwise select the first one.
+                                       storedMTProvider = mw.storage.get( 
getMTProviderStorageKey() );
+                                       if (
+                                               [ disableMT, noMT, sourceMT 
].indexOf( storedMTProvider ) >= 0 || MTControlCard.providers.indexOf( 
storedMTProvider ) >= 0
+                                       ) {
+                                               MTControlCard.provider = 
storedMTProvider;
+                                       } else {
+                                               MTControlCard.provider = 
MTControlCard.providers[ 0 ];
+                                       }
                                }
                        } )
                        .fail( function ( response ) {
@@ -116,6 +125,17 @@
                                        response.responseText
                                );
                        } );
+       }
+
+       /**
+        * Get the localStorage key for the MT preference
+        *
+        * @return {string} The storage key.
+        */
+       function getMTProviderStorageKey() {
+               return [
+                       'cxMTProvider', mw.cx.sourceLanguage, 
mw.cx.targetLanguage
+               ].join( '-' );
        }
 
        /**
@@ -371,7 +391,6 @@
                $providerItem.addClass( 'selected' );
 
                // Set the global engine
-               // TODO: This should be saved in a preference or a cookie
                if ( MTControlCard.provider !== providerId ) {
                        MTControlCard.provider = providerId;
                        // Apply this choice to the current section.
@@ -383,6 +402,10 @@
                                // Must be an MT engine. Restore.
                                this.restoreTranslation();
                        }
+
+                       // Save the current provider
+                       mw.storage.set( getMTProviderStorageKey(), providerId );
+
                }
                // Set the main label
                this.$providerSelectorTrigger.text( this.getProviderTitle( 
providerId ) );
@@ -433,9 +456,13 @@
        };
 
        MTControlCard.prototype.buildProvidersMenu = function () {
-               var provider, items, nonDefaultMT, newProvider = false;
+               var provider, items, nonDefaultMT, storedMTProvider, 
newProvider = false;
 
-               if ( MTControlCard.providers && MTControlCard.providers.length 
> 1 ) {
+               storedMTProvider = mw.storage.get( getMTProviderStorageKey() );
+               if ( MTControlCard.providers &&
+                       MTControlCard.providers.length > 1 &&
+                       [ sourceMT, disableMT, noMT ].indexOf( storedMTProvider 
) >= 0
+               ) {
                        nonDefaultMT = true;
                        // There are more MT options or non default MT 
available. Announce.
                        this.$card.find( '.card__title-row' )

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie13ea5c6c1911746888c67224ccee9212f5635dc
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/ContentTranslation
Gerrit-Branch: master
Gerrit-Owner: Santhosh <santhosh.thottin...@gmail.com>

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

Reply via email to