jenkins-bot has submitted this change and it was merged. Change subject: mw.Upload.BookletLayout: Move error checking for uploadToStash to uploadFile ......................................................................
mw.Upload.BookletLayout: Move error checking for uploadToStash to uploadFile We were checking for uploadToStash errors in saveFile, instead of in uploadFile itself. Apart from being just wrong it was causing two issues: 1. We would show an upload error until after you've tried to save the file. 2. If there was an error in saving, and you try again, the first thing it would do is check mw.Upload.State to hopefully check for uploadToStash errors. Instead of running the finishStashUpload again it would fail because of the earlier error, thus making all errors unrecoverable. Bug: T114130 Change-Id: I56f4ef6e6536840a63402688eb2a1875a6876fcc --- M resources/src/mediawiki/mediawiki.Upload.BookletLayout.js 1 file changed, 18 insertions(+), 14 deletions(-) Approvals: Bartosz Dziewoński: Looks good to me, approved jenkins-bot: Verified diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js index 41200d3..fa2fb0b 100644 --- a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js +++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js @@ -175,16 +175,31 @@ * @return {jQuery.Promise} */ mw.Upload.BookletLayout.prototype.uploadFile = function () { - var file = this.getFile(); + var deferred = $.Deferred(), + layout = this, + file = this.getFile(); this.filenameWidget.setValue( file.name ); this.setPage( 'info' ); this.upload.setFile( file ); this.uploadPromise = this.upload.uploadToStash(); - this.uploadPromise.then( this.emit.bind( this, 'fileUploaded' ) ); + this.uploadPromise.then( function () { + deferred.resolve(); + layout.emit( 'fileUploaded' ); + } ); + this.uploadPromise.always( function () { + if ( layout.upload.getState() === mw.Upload.State.ERROR ) { + deferred.reject( new OO.ui.Error( mw.msg( 'upload-process-error' ) ) ); + return false; + } + if ( layout.upload.getState() === mw.Upload.State.WARNING ) { + deferred.reject( new OO.ui.Error( mw.msg( 'upload-process-error' ) ) ); + return false; + } + } ); - return this.uploadPromise; + return deferred; }; /** @@ -206,17 +221,6 @@ this.upload.setText( this.getText() ); this.uploadPromise.always( function () { - - if ( layout.upload.getState() === mw.Upload.State.ERROR ) { - deferred.reject( new OO.ui.Error( mw.msg( 'upload-process-error' ) ) ); - return false; - } - - if ( layout.upload.getState() === mw.Upload.State.WARNING ) { - deferred.reject( new OO.ui.Error( mw.msg( 'upload-process-error' ) ) ); - return false; - } - layout.upload.finishStashUpload().always( function () { var name; -- To view, visit https://gerrit.wikimedia.org/r/242655 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I56f4ef6e6536840a63402688eb2a1875a6876fcc Gerrit-PatchSet: 3 Gerrit-Project: mediawiki/core Gerrit-Branch: master Gerrit-Owner: Prtksxna <psax...@wikimedia.org> Gerrit-Reviewer: Bartosz Dziewoński <matma....@gmail.com> Gerrit-Reviewer: Edokter <er...@darcoury.nl> Gerrit-Reviewer: Jack Phoenix <j...@countervandalism.net> Gerrit-Reviewer: Krinkle <krinklem...@gmail.com> Gerrit-Reviewer: Prtksxna <psax...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits