aboutsummaryrefslogtreecommitdiffstats
path: root/includes/actions
diff options
context:
space:
mode:
authorBartosz Dziewoński <dziewonski@fastmail.fm>2024-10-17 18:25:56 +0200
committerBartosz Dziewoński <dziewonski@fastmail.fm>2024-11-28 04:22:13 +0100
commitbc8d6d0d2706966fecb2b4c48775043a7d7e2b4b (patch)
tree963bca30415c03dc22a5dc859ef4c7897f1f0f9c /includes/actions
parentcafcd9209031fcf48d01dc63276467ef841a7a85 (diff)
downloadmediawikicore-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.php53
-rw-r--r--includes/actions/FileDeleteAction.php12
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' ) );