mw.Upload.BookletLayout: Don't explode when the API call fails with 'exception'
authorBartosz Dziewoński <matma.rex@gmail.com>
Tue, 22 Dec 2015 15:13:25 +0000 (16:13 +0100)
committerBartosz Dziewoński <matma.rex@gmail.com>
Tue, 22 Dec 2015 15:28:24 +0000 (16:28 +0100)
I just tried uploading a large file (~250 MB) and hit the timeout limit.
Since there's no 'error' key, some of our logic broke.

Change-Id: I9b9d5df5bf0db67a4d2fcc97fb886dc3c9519d5a

resources/src/mediawiki/mediawiki.Upload.BookletLayout.js

index 54f3ab6..2ef3e87 100644 (file)
                        warnings = stateDetails.upload && stateDetails.upload.warnings;
 
                if ( state === mw.Upload.State.ERROR ) {
+                       if ( !error ) {
+                               // If there's an 'exception' key, this might be a timeout, or other connection problem
+                               return new OO.ui.Error(
+                                       $( '<p>' ).msg( 'api-error-unknownerror', JSON.stringify( stateDetails ) ),
+                                       { recoverable: false }
+                               );
+                       }
+
                        // HACK We should either have a hook here to allow TitleBlacklist to handle this, or just have
                        // TitleBlacklist produce sane error messages that can be displayed without arcane knowledge
                        if ( error.info === 'TitleBlacklist prevents this title from being created' ) {