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