Nikerabbit has uploaded a new change for review.

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

Change subject: Don't use new with $.Deferred()
......................................................................

Don't use new with $.Deferred()

Simplified code where possible with then() and postWithToken().

Change-Id: Ifd39d7e3063681363961e3a6125d6ce99b6f6e74
---
M resources/js/ext.translate.base.js
M resources/js/ext.translate.editor.helpers.js
M resources/js/ext.translate.special.pagemigration.js
M resources/js/ext.translate.special.pagepreparation.js
M resources/js/ext.translate.workflowselector.js
5 files changed, 25 insertions(+), 43 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate 
refs/changes/32/178032/1

diff --git a/resources/js/ext.translate.base.js 
b/resources/js/ext.translate.base.js
index 4d409f7..76c8e7d 100644
--- a/resources/js/ext.translate.base.js
+++ b/resources/js/ext.translate.base.js
@@ -53,8 +53,7 @@
                 * @return {jQuery.Promise} Object containing the requested 
properties on success.
                 */
                getMessageGroup: function ( id, props ) {
-                       var params,
-                               deferred = new $.Deferred();
+                       var params;
 
                        if ( $.isArray( props ) ) {
                                props = props.join( '|' );
@@ -71,14 +70,9 @@
                                mgroot: id
                        };
 
-                       new mw.Api()
-                               .get( params )
-                               .done( function ( result ) {
-                                       deferred.resolve( 
result.query.messagegroups[0] );
-                               } )
-                               .fail( deferred.reject );
-
-                       return deferred.promise();
+                       return (new mw.Api()).get( params ).then( function ( 
result ) {
+                               return result.query.messagegroups[0];
+                       } );
                },
 
                /**
diff --git a/resources/js/ext.translate.editor.helpers.js 
b/resources/js/ext.translate.editor.helpers.js
index 9c08552..6a0587d 100644
--- a/resources/js/ext.translate.editor.helpers.js
+++ b/resources/js/ext.translate.editor.helpers.js
@@ -53,10 +53,9 @@
                saveDocumentation: function () {
                        var translateEditor = this,
                                api = new mw.Api(),
-                               deferred = new $.Deferred(),
                                newDocumentation = 
translateEditor.$editor.find( '.tux-textarea-documentation' ).val();
 
-                       deferred = api.postWithToken( 'edit', {
+                       return api.postWithToken( 'edit', {
                                action: 'edit',
                                title: translateEditor.message.title
                                        .replace( /\/[a-z\-]+$/, '/' + 
mw.config.get( 'wgTranslateDocumentationLanguageCode' ) ),
@@ -85,7 +84,6 @@
                                mw.notify( 'Error saving message documentation' 
);
                                mw.log( 'Error saving documentation', 
errorCode, results );
                        } );
-                       return deferred.promise();
                },
 
                /**
diff --git a/resources/js/ext.translate.special.pagemigration.js 
b/resources/js/ext.translate.special.pagemigration.js
index 7b72bae..307b121 100644
--- a/resources/js/ext.translate.special.pagemigration.js
+++ b/resources/js/ext.translate.special.pagemigration.js
@@ -12,15 +12,14 @@
        function createTranslationPage( i, content ) {
 
                return function () {
-                       var api = new mw.Api(),
-                       identifier, title, summary,
-                       deferred = new $.Deferred();
+                       var identifier, title, summary,
+                               api = new mw.Api();
 
                        identifier = sourceUnits[i].identifier;
                        title = 'Translations:' + pageName + '/' + identifier + 
'/' + langCode;
                        summary = $( '#pm-summary' ).val();
 
-                       deferred = api.postWithToken( 'edit', {
+                       return api.postWithToken( 'edit', {
                                action: 'edit',
                                format: 'json',
                                watchlist: 'nochange',
@@ -28,7 +27,6 @@
                                text: content,
                                summary: summary,
                        } );
-                       return deferred.promise();
                };
        }
 
@@ -59,12 +57,12 @@
                        if ( typeof obj === undefined ) {
                                // obj was not initialized
                                errorBox.text( mw.msg( 
'pm-page-does-not-exist', pageTitle ) ).show( 'fast' );
-                               return new $.Deferred().reject();
+                               return $.Deferred().reject();
                        }
                        if ( obj.revisions === undefined ) {
                                // the case of /en subpage where first edit is 
by FuzzyBot
                                errorBox.text( mw.msg( 
'pm-old-translations-missing', pageTitle ) ).show( 'fast' );
-                               return new $.Deferred().reject();
+                               return $.Deferred().reject();
                        }
                        pageContent = obj.revisions[0]['*'];
                        oldTranslationUnits = pageContent.split( '\n\n' );
@@ -101,12 +99,12 @@
                        // Page does not exist if missing field is present
                        if ( obj.missing === '' ) {
                                errorBox.text( mw.msg( 
'pm-page-does-not-exist', pageTitle ) ).show( 'fast' );
-                               return new $.Deferred().reject();
+                               return $.Deferred().reject();
                        }
                        // Page exists, but no edit by FuzzyBot
                        if ( obj.revisions === undefined ) {
                                errorBox.text( mw.msg( 
'pm-old-translations-missing', pageTitle ) ).show( 'fast' );
-                               return new $.Deferred().reject();
+                               return $.Deferred().reject();
                        } else {
                                // FB over here refers to FuzzyBot
                                timestampFB = obj.revisions[0].timestamp;
diff --git a/resources/js/ext.translate.special.pagepreparation.js 
b/resources/js/ext.translate.special.pagepreparation.js
index 58d96cd..06e623b 100644
--- a/resources/js/ext.translate.special.pagepreparation.js
+++ b/resources/js/ext.translate.special.pagepreparation.js
@@ -156,7 +156,7 @@
         * @return {string}
         */
        function doFiles( pageContent ) {
-               var deferred = new $.Deferred();
+               var deferred = $.Deferred();
 
                $.when( getNamespaceAliases( 6 ) ).then( function ( aliases ) {
                        var aliasList, captionFilesRegex, fileRegex;
diff --git a/resources/js/ext.translate.workflowselector.js 
b/resources/js/ext.translate.workflowselector.js
index 5911ce0..71652a7 100644
--- a/resources/js/ext.translate.workflowselector.js
+++ b/resources/js/ext.translate.workflowselector.js
@@ -55,28 +55,20 @@
                 * @return {jQuery.Promise}
                 */
                changeState: function ( state ) {
-                       var instance = this,
-                               tokenCall, deferred;
+                       var token, params,
+                               api = new mw.Api();
 
-                       deferred = new $.Deferred();
-                       tokenCall = new mw.Api().get( { action: 'tokens', type: 
'groupreview' } );
+                       params = {
+                               action: 'groupreview',
+                               group: this.groupId,
+                               language: this.language,
+                               state: state,
+                               token: result.tokens.groupreviewtoken,
+                               format: 'json'
+                       };
+                       token = mw.config.get( 'wgTranslateSupportsCsrfToken' ) 
? 'csrf' : 'groupreview';
 
-                       tokenCall.fail( deferred.reject );
-                       tokenCall.done( function ( result ) {
-                               var params = {
-                                       action: 'groupreview',
-                                       group: instance.groupId,
-                                       language: instance.language,
-                                       state: state,
-                                       token: result.tokens.groupreviewtoken,
-                                       format: 'json'
-                               };
-                               new mw.Api().post( params )
-                                       .done( deferred.resolve )
-                                       .fail( deferred.reject );
-                       } );
-
-                       return deferred.promise();
+                       return api.postWithToken( token, params );
                },
 
                /**

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifd39d7e3063681363961e3a6125d6ce99b6f6e74
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Nikerabbit <niklas.laxst...@gmail.com>

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

Reply via email to