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