From f3b2f2023a5978bc2585b7f9bcd9ccd41409be3a Mon Sep 17 00:00:00 2001 From: =?utf8?q?Bartosz=20Dziewo=C5=84ski?= Date: Tue, 5 Apr 2016 22:25:46 +0200 Subject: [PATCH] mw.Upload.BookletLayout: Handle additional warnings/errors Warnings: * 'exists-normalized': Same handling as 'exists', the only difference is exact match vs only matching after title normalization. * 'was-deleted': Added new l10n message 'api-error-was-deleted', based on 'filewasdeleted' but shorter/simpler. Errors: * 'protectedpage': Display 'protectedpagetext' message. Bug: T131709 Change-Id: Ia9f65fc39d59018dc62b758f9a2ae98de7d187fe --- languages/i18n/en.json | 1 + languages/i18n/qqq.json | 1 + resources/Resources.php | 2 ++ .../mediawiki.Upload.BookletLayout.js | 20 ++++++++++++++++--- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/languages/i18n/en.json b/languages/i18n/en.json index fe307d4bdc..c0b2ebc22c 100644 --- a/languages/i18n/en.json +++ b/languages/i18n/en.json @@ -3900,6 +3900,7 @@ "api-error-unknownerror": "Unknown error: \"$1\".", "api-error-uploaddisabled": "Uploading is disabled on this wiki.", "api-error-verification-error": "This file might be corrupt, or have the wrong extension.", + "api-error-was-deleted": "A file of this name has been previously uploaded and subsequently deleted.", "duration-seconds": "$1 {{PLURAL:$1|second|seconds}}", "duration-minutes": "$1 {{PLURAL:$1|minute|minutes}}", "duration-hours": "$1 {{PLURAL:$1|hour|hours}}", diff --git a/languages/i18n/qqq.json b/languages/i18n/qqq.json index 2ee34bdea5..285093d52e 100644 --- a/languages/i18n/qqq.json +++ b/languages/i18n/qqq.json @@ -4076,6 +4076,7 @@ "api-error-unknownerror": "API error message that can be used for client side localisation of API errors.\n\nParameters:\n* $1 - an unknown error message\n{{Identical|Unknown error}}", "api-error-uploaddisabled": "API error message that can be used for client side localisation of API errors.", "api-error-verification-error": "The word \"extension\" refers to the part behind the last dot in a file name, that by convention gives a hint about the kind of data format which a files contents are in.", + "api-error-was-deleted": "API error message that can be used for client side localisation of API errors.", "duration-seconds": "Used as duration. Parameters:\n* $1 - number of seconds\n{{Related|Duration}}\n{{Identical|Second}}", "duration-minutes": "Used as duration. Parameters:\n* $1 - number of minutes\n{{Related|Duration}}\n{{Identical|Minute}}", "duration-hours": "Used as duration. Parameters:\n* $1 - number of hours\n{{Related|Duration}}", diff --git a/resources/Resources.php b/resources/Resources.php index b206ba3cf5..5cc5681ba0 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -1255,11 +1255,13 @@ return [ 'api-error-unknown-error', 'api-error-uploaddisabled', 'api-error-verification-error', + 'api-error-was-deleted', 'fileexists', 'filepageexists', 'filename-bad-prefix', 'filename-thumb-name', 'badfilename', + 'protectedpagetext', 'api-error-blacklisted', // HACK ], ], diff --git a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js index 33b10bdd30..6af0edf25e 100644 --- a/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js +++ b/resources/src/mediawiki/mediawiki.Upload.BookletLayout.js @@ -322,9 +322,13 @@ ); } - message = mw.message( 'api-error-' + error.code ); - if ( !message.exists() ) { - message = mw.message( 'api-error-unknownerror', JSON.stringify( stateDetails ) ); + if ( error.code === 'protectedpage' ) { + message = mw.message( 'protectedpagetext' ); + } else { + message = mw.message( 'api-error-' + error.code ); + if ( !message.exists() ) { + message = mw.message( 'api-error-unknownerror', JSON.stringify( stateDetails ) ); + } } return new OO.ui.Error( $( '

' ).append( message.parseDom() ), @@ -346,6 +350,11 @@ $( '

' ).msg( 'fileexists', 'File:' + warnings.exists ), { recoverable: false } ); + } else if ( warnings[ 'exists-normalized' ] !== undefined ) { + return new OO.ui.Error( + $( '

' ).msg( 'fileexists', 'File:' + warnings[ 'exists-normalized' ] ), + { recoverable: false } + ); } else if ( warnings[ 'page-exists' ] !== undefined ) { return new OO.ui.Error( $( '

' ).msg( 'filepageexists', 'File:' + warnings[ 'page-exists' ] ), @@ -371,6 +380,11 @@ $( '

' ).msg( 'api-error-duplicate-archive', 1 ), { recoverable: false } ); + } else if ( warnings[ 'was-deleted' ] !== undefined ) { + return new OO.ui.Error( + $( '

' ).msg( 'api-error-was-deleted' ), + { recoverable: false } + ); } else if ( warnings.badfilename !== undefined ) { // Change the name if the current name isn't acceptable // TODO This might not really be the best place to do this -- 2.20.1