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
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 ) {
return false;
}
- dialog.upload.finishStashUpload().then( function () {
+ dialog.upload.finishStashUpload().always( function () {
var name;
if ( dialog.upload.getState() === mw.Upload.State.ERROR ) {