diff options
author | Bartosz Dziewoński <dziewonski@fastmail.fm> | 2024-10-17 18:25:56 +0200 |
---|---|---|
committer | Bartosz Dziewoński <dziewonski@fastmail.fm> | 2024-11-28 04:22:13 +0100 |
commit | bc8d6d0d2706966fecb2b4c48775043a7d7e2b4b (patch) | |
tree | 963bca30415c03dc22a5dc859ef4c7897f1f0f9c /includes/actions | |
parent | cafcd9209031fcf48d01dc63276467ef841a7a85 (diff) | |
download | mediawikicore-bc8d6d0d2706966fecb2b4c48775043a7d7e2b4b.tar.gz mediawikicore-bc8d6d0d2706966fecb2b4c48775043a7d7e2b4b.zip |
Modernize status and error message handling
* Use pretty error boxes instead of 'error' CSS class.
* Use Status::getMessages() and display each error individually,
instead of getWikiText(). The latter sometimes messes up the display
of complex messages, such as customized AbuseFilter errors.
* Add missing 'mediawiki.codex.messagebox.styles' (some of these pages
already used pretty error boxes in other code paths).
* Other minor fixes.
Bug: T377384
Bug: T375287
Change-Id: If2299f98f23e9ad057bce56260e264507337e0b6
Diffstat (limited to 'includes/actions')
-rw-r--r-- | includes/actions/DeleteAction.php | 53 | ||||
-rw-r--r-- | includes/actions/FileDeleteAction.php | 12 |
2 files changed, 36 insertions, 29 deletions
diff --git a/includes/actions/DeleteAction.php b/includes/actions/DeleteAction.php index ea0c52cc96da..0a3bf54b167c 100644 --- a/includes/actions/DeleteAction.php +++ b/includes/actions/DeleteAction.php @@ -31,7 +31,6 @@ use MediaWiki\Page\DeletePage; use MediaWiki\Page\DeletePageFactory; use MediaWiki\Revision\RevisionRecord; use MediaWiki\Session\CsrfTokenSet; -use MediaWiki\Status\Status; use MediaWiki\Title\NamespaceInfo; use MediaWiki\Title\TitleFactory; use MediaWiki\Title\TitleFormatter; @@ -157,9 +156,11 @@ class DeleteAction extends FormAction { $outputPage->setPageTitleMsg( $context->msg( 'cannotdelete-title' )->plaintextParams( $title->getPrefixedText() ) ); - $outputPage->wrapWikiMsg( "<div class=\"error mw-error-cannotdelete\">\n$1\n</div>", - [ 'cannotdelete', wfEscapeWikiText( $title->getPrefixedText() ) ] - ); + $outputPage->addHTML( Html::errorBox( + $context->msg( 'cannotdelete', wfEscapeWikiText( $title->getPrefixedText() ) )->parse(), + '', + 'mw-error-cannotdelete' + ) ); $this->showLogEntries(); return; @@ -208,17 +209,11 @@ class DeleteAction extends FormAction { if ( !$status->isGood() ) { // If the page (and/or its talk) couldn't be found (e.g. because it was deleted in another request), // let the user know. - $outputPage->addHTML( - Html::warningBox( - $outputPage->parseAsContent( - Status::wrap( $status )->getWikiText( - false, - false, - $context->getLanguage() - ) - ) - ) - ); + foreach ( $status->getMessages() as $msg ) { + $outputPage->addHTML( + Html::warningBox( $context->msg( $msg )->parse() ) + ); + } } $this->showSuccessMessages( @@ -235,10 +230,14 @@ class DeleteAction extends FormAction { $this->msg( 'cannotdelete-title' )->plaintextParams( $this->getTitle()->getPrefixedText() ) ); - $outputPage->wrapWikiTextAsInterface( - 'error mw-error-cannotdelete', - Status::wrap( $status )->getWikiText( false, false, $context->getLanguage() ) - ); + foreach ( $status->getMessages() as $msg ) { + $outputPage->addHTML( Html::errorBox( + $context->msg( $msg )->parse(), + '', + 'mw-error-cannotdelete' + ) ); + } + $this->showLogEntries(); } @@ -325,12 +324,11 @@ class DeleteAction extends FormAction { ); if ( $title->isBigDeletion() ) { - $context->getOutput()->wrapWikiMsg( "<div class='error'>\n$1\n</div>\n", - [ - 'delete-warning-toobig', - $context->getLanguage()->formatNum( $this->deleteRevisionsLimit ) - ] - ); + $context->getOutput()->addHTML( Html::errorBox( + $context->msg( 'delete-warning-toobig' ) + ->numParams( $this->deleteRevisionsLimit ) + ->parse() + ) ); } } @@ -566,7 +564,10 @@ class DeleteAction extends FormAction { protected function prepareOutputForForm(): void { $outputPage = $this->getOutput(); $outputPage->addModules( 'mediawiki.misc-authed-ooui' ); - $outputPage->addModuleStyles( 'mediawiki.action.styles' ); + $outputPage->addModuleStyles( [ + 'mediawiki.action.styles', + 'mediawiki.codex.messagebox.styles', + ] ); $outputPage->enableOOUI(); } diff --git a/includes/actions/FileDeleteAction.php b/includes/actions/FileDeleteAction.php index eb302fbb7f2e..c34b952370b2 100644 --- a/includes/actions/FileDeleteAction.php +++ b/includes/actions/FileDeleteAction.php @@ -26,6 +26,7 @@ use ErrorPageError; use File; use LocalFile; use MediaWiki\Context\IContextSource; +use MediaWiki\Html\Html; use MediaWiki\MainConfigNames; use MediaWiki\MediaWikiServices; use MediaWiki\Page\File\FileDeleteForm; @@ -131,10 +132,15 @@ class FileDeleteAction extends DeleteAction { ); if ( !$status->isGood() ) { - $outputPage->wrapWikiTextAsInterface( - 'error', - $status->getWikiText( 'filedeleteerror-short', 'filedeleteerror-long' ) + $outputPage->setPageTitleMsg( + $this->msg( 'cannotdelete-title' )->plaintextParams( $title->getPrefixedText() ) ); + $outputPage->addModuleStyles( 'mediawiki.codex.messagebox.styles' ); + foreach ( $status->getMessages() as $msg ) { + $outputPage->addHTML( Html::errorBox( + $context->msg( $msg )->parse() + ) ); + } } if ( $status->isOK() ) { $outputPage->setPageTitleMsg( $context->msg( 'actioncomplete' ) ); |