summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/Translate/resources/js/ext.translate.translationstashstorage.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/Translate/resources/js/ext.translate.translationstashstorage.js')
-rw-r--r--www/wiki/extensions/Translate/resources/js/ext.translate.translationstashstorage.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/www/wiki/extensions/Translate/resources/js/ext.translate.translationstashstorage.js b/www/wiki/extensions/Translate/resources/js/ext.translate.translationstashstorage.js
new file mode 100644
index 00000000..17350cf2
--- /dev/null
+++ b/www/wiki/extensions/Translate/resources/js/ext.translate.translationstashstorage.js
@@ -0,0 +1,57 @@
+( function () {
+ 'use strict';
+
+ /**
+ * This class can save translation to translation stash.
+ *
+ * @since 2013.10
+ */
+ var TranslationStashStorage = function () {
+ // No-op for now. Could take api module as param for example.
+ };
+
+ TranslationStashStorage.prototype = {
+ /**
+ * Save the translation.
+ *
+ * @param {string} title The title of the page including language code
+ * to store the translation.
+ * @param {string} translation The translation of the message
+ * @return {jQuery.Promise}
+ */
+ save: function ( title, translation ) {
+ var api = new mw.Api();
+
+ return api.postWithToken( 'csrf', {
+ action: 'translationstash',
+ subaction: 'add',
+ title: title,
+ translation: translation
+ } ).then( function () {
+ // Fake normal save API
+ return { edit: { result: 'Success' } };
+ } );
+ },
+
+ /**
+ * Get the current users translations.
+ *
+ * @param {string} user User name
+ * @return {jQuery.Promise}
+ */
+ getUserTranslations: function ( user ) {
+ var api = new mw.Api();
+
+ return api.postWithToken( 'csrf', {
+ action: 'translationstash',
+ subaction: 'query',
+ username: user
+ } ).promise();
+ }
+
+ };
+
+ mw.translate = mw.translate || {};
+ mw.translate.TranslationStashStorage = TranslationStashStorage;
+
+}() );