jenkins-bot has submitted this change and it was merged.

Change subject: mw.Upload.BookletLayout: Rewrite some code to use promise 
chaining
......................................................................


mw.Upload.BookletLayout: Rewrite some code to use promise chaining

Allegedly this makes it clearer.

Follow-up to I0b2f53b91454f22e2001462397087da9e055b701.

Change-Id: Ie3a6c20452d8102d44b4268f92c55bbabfc5cd68
---
M resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
M resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
2 files changed, 42 insertions(+), 32 deletions(-)

Approvals:
  MarkTraceur: Looks good to me, approved
  jenkins-bot: Verified



diff --git 
a/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js 
b/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
index 7331df9..97d81fb 100644
--- a/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
+++ b/resources/src/mediawiki/mediawiki.ForeignStructuredUpload.BookletLayout.js
@@ -39,21 +39,28 @@
         * @inheritdoc
         */
        mw.ForeignStructuredUpload.BookletLayout.prototype.initialize = 
function () {
-               var deferred = $.Deferred();
-               
mw.ForeignStructuredUpload.BookletLayout.parent.prototype.initialize.call( this 
)
-                       .done( function () {
+               var booklet = this;
+               return 
mw.ForeignStructuredUpload.BookletLayout.parent.prototype.initialize.call( this 
).then(
+                       function () {
                                // Point the CategorySelector to the right wiki
-                               this.upload.getApi().done( function ( api ) {
-                                       // If this is a ForeignApi, it will 
have a apiUrl, otherwise we don't need to do anything
-                                       if ( api.apiUrl ) {
-                                               // Can't reuse the same object, 
CategorySelector calls #abort on its mw.Api instance
-                                               this.categoriesWidget.api = new 
mw.ForeignApi( api.apiUrl );
+                               return booklet.upload.getApi().then(
+                                       function ( api ) {
+                                               // If this is a ForeignApi, it 
will have a apiUrl, otherwise we don't need to do anything
+                                               if ( api.apiUrl ) {
+                                                       // Can't reuse the same 
object, CategorySelector calls #abort on its mw.Api instance
+                                                       
booklet.categoriesWidget.api = new mw.ForeignApi( api.apiUrl );
+                                               }
+                                               return $.Deferred().resolve();
+                                       },
+                                       function () {
+                                               return $.Deferred().resolve();
                                        }
-                               }.bind( this ) ).always( function () {
-                                       deferred.resolve();
-                               } );
-                       }.bind( this ) );
-               return deferred.promise();
+                               );
+                       },
+                       function () {
+                               return $.Deferred().resolve();
+                       }
+               );
        };
 
        /**
diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js 
b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
index 7971069..9d67fe1 100644
--- a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
+++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js
@@ -151,30 +151,33 @@
         * @return {jQuery.Promise} Promise resolved when everything is 
initialized
         */
        mw.Upload.BookletLayout.prototype.initialize = function () {
-               var
-                       booklet = this,
-                       deferred = $.Deferred();
+               var booklet = this;
 
                this.clear();
                this.upload = this.createUpload();
                this.setPage( 'upload' );
 
-               this.upload.getApi().done( function ( api ) {
-                       // If the user can't upload anything, don't give them 
the option to.
-                       api.getUserInfo().done( function ( userInfo ) {
-                               if ( userInfo.rights.indexOf( 'upload' ) === -1 
) {
-                                       // TODO Use a better error message when 
not all logged-in users can upload
-                                       booklet.getPage( 'upload' 
).$element.msg( 'api-error-mustbeloggedin' );
-                               }
-                       } ).always( function () {
-                               deferred.resolve();
-                       } );
-               } ).fail( function ( errorMsg ) {
-                       booklet.getPage( 'upload' ).$element.msg( errorMsg );
-                       deferred.resolve();
-               } );
-
-               return deferred.promise();
+               return this.upload.getApi().then(
+                       function ( api ) {
+                               // If the user can't upload anything, don't 
give them the option to.
+                               return api.getUserInfo().then(
+                                       function ( userInfo ) {
+                                               if ( userInfo.rights.indexOf( 
'upload' ) === -1 ) {
+                                                       // TODO Use a better 
error message when not all logged-in users can upload
+                                                       booklet.getPage( 
'upload' ).$element.msg( 'api-error-mustbeloggedin' );
+                                               }
+                                               return $.Deferred().resolve();
+                                       },
+                                       function () {
+                                               return $.Deferred().resolve();
+                                       }
+                               );
+                       },
+                       function ( errorMsg ) {
+                               booklet.getPage( 'upload' ).$element.msg( 
errorMsg );
+                               return $.Deferred().resolve();
+                       }
+               );
        };
 
        /**

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

Gerrit-MessageType: merged
Gerrit-Change-Id: Ie3a6c20452d8102d44b4268f92c55bbabfc5cd68
Gerrit-PatchSet: 4
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz DziewoƄski <[email protected]>
Gerrit-Reviewer: Edokter <[email protected]>
Gerrit-Reviewer: Jack Phoenix <[email protected]>
Gerrit-Reviewer: MarkTraceur <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to