From e0ec5314f1b2b3b4ba1ffaa62443ab157eca950e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Mon, 24 Aug 2015 21:53:06 +0200 Subject: [PATCH] mediawiki.api.upload: Improve error handling when using #uploadToStash The finishUpload() function did not check for errors previously, which caused errors that only surface at this point (e.g. invalid file name) to be ignored. Change-Id: I61a1e6bb93b6db34e875689c5d769a1b7e4db0be --- resources/src/mediawiki.api/mediawiki.api.upload.js | 7 ++++++- resources/src/mediawiki/mediawiki.Upload.Dialog.js | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/resources/src/mediawiki.api/mediawiki.api.upload.js b/resources/src/mediawiki.api/mediawiki.api.upload.js index 8f19a3b7a2..d05ba57809 100644 --- a/resources/src/mediawiki.api/mediawiki.api.upload.js +++ b/resources/src/mediawiki.api/mediawiki.api.upload.js @@ -331,7 +331,12 @@ return $.Deferred().reject( 'Filename not included in file data.' ); } - return api.postWithEditToken( data ); + return api.postWithEditToken( data ).then( function ( result ) { + if ( result.upload && ( result.upload.error || result.upload.warnings ) ) { + return $.Deferred().reject( result.upload.error || result.upload.warnings ).promise(); + } + return result; + } ); } return this.upload( file, { stash: true, filename: data.filename } ).then( function ( result ) { diff --git a/resources/src/mediawiki/mediawiki.Upload.Dialog.js b/resources/src/mediawiki/mediawiki.Upload.Dialog.js index 3c10eeb2f7..96db7cc1d3 100644 --- a/resources/src/mediawiki/mediawiki.Upload.Dialog.js +++ b/resources/src/mediawiki/mediawiki.Upload.Dialog.js @@ -337,7 +337,7 @@ return false; } - dialog.upload.finishStashUpload().then( function () { + dialog.upload.finishStashUpload().always( function () { var name; if ( dialog.upload.getState() === mw.Upload.State.ERROR ) { -- 2.20.1