Merge "mediawiki.Upload.BookletLayout: Handle errors from TitleBlacklist (HACK)"
authorjenkins-bot <jenkins-bot@gerrit.wikimedia.org>
Mon, 12 Oct 2015 20:07:21 +0000 (20:07 +0000)
committerGerrit Code Review <gerrit@wikimedia.org>
Mon, 12 Oct 2015 20:07:21 +0000 (20:07 +0000)
1  2 
resources/src/mediawiki/mediawiki.Upload.BookletLayout.js

                        warnings = stateDetails.upload && stateDetails.upload.warnings;
  
                if ( state === mw.Upload.State.ERROR ) {
+                       // 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' ) {
+                               // HACK Apparently the only reliable way to determine whether TitleBlacklist was involved
+                               return new OO.ui.Error(
+                                       $( '<p>' ).html(
+                                               // HACK TitleBlacklist doesn't have a sensible message, this one is from UploadWizard
+                                               mw.message( 'api-error-blacklisted' ).parse()
+                                       ),
+                                       { recoverable: false }
+                               );
+                       }
                        message = mw.message( 'api-error-' + error.code );
                        if ( !message.exists() ) {
                                message = mw.message( 'api-error-unknownerror', JSON.stringify( stateDetails ) );
                        } else if ( warnings.exists !== undefined ) {
                                return new OO.ui.Error(
                                        $( '<p>' ).html(
 -                                              mw.message( 'filepageexists', warnings.exists ).parse()
 +                                              mw.message( 'fileexists', 'File:' + warnings.exists ).parse()
 +                                      ),
 +                                      { recoverable: false }
 +                              );
 +                      } else if ( warnings[ 'page-exists' ] !== undefined ) {
 +                              return new OO.ui.Error(
 +                                      $( '<p>' ).html(
 +                                              mw.message( 'filepageexists', 'File:' + warnings[ 'page-exists' ] ).parse()
                                        ),
                                        { recoverable: false }
                                );
                        } else if ( warnings.duplicate !== undefined ) {
                                return new OO.ui.Error(
                                        $( '<p>' ).html(
 -                                              mw.message( 'fileexists', warnings.duplicate[ 0 ] ).parse()
 +                                              mw.message( 'api-error-duplicate', warnings.duplicate.length ).parse()
                                        ),
                                        { recoverable: false }
                                );
                        } else if ( warnings[ 'duplicate-archive' ] !== undefined ) {
                                return new OO.ui.Error(
                                        $( '<p>' ).html(
 -                                              mw.message( 'api-error-duplicate-archive', warnings[ 'duplicate-archive' ] ).parse()
 +                                              mw.message( 'api-error-duplicate-archive', 1 ).parse()
                                        ),
                                        { recoverable: false }
                                );