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 <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits