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

Reply via email to