mediawiki-extensions-AbuseF.../includes/ThrottleFilterPresentationModel.php
Daimona Eaytoy b5c22f2b77 Improve wording for throttled filter warnings
List which actions were disabled, or explicitly say that no actions were
disabled if that's the case. Also avoid the word "throttle" in messages
as it may be hard to translate. Also don't suggest optimizations to the
filter conditions -- unoptimized rules have nothing to do with a filter
being throttled.

Bug: T200036
Change-Id: Id989fb185453d068b7685241ee49189a2df67b5f
2022-02-22 11:10:19 +00:00

66 lines
1.8 KiB
PHP

<?php
namespace MediaWiki\Extension\AbuseFilter;
use EchoEventPresentationModel;
use Message;
class ThrottleFilterPresentationModel extends EchoEventPresentationModel {
/**
* @inheritDoc
*/
public function getIconType() {
return 'placeholder';
}
/**
* @inheritDoc
*/
public function getHeaderMessage() {
$text = $this->event->getTitle()->getText();
list( , $filter ) = explode( '/', $text, 2 );
$disabledActions = $this->event->getExtraParam( 'throttled-actions' );
if ( $disabledActions === null ) {
// BC for when we didn't include the actions here.
return $this->msg( 'notification-header-throttle-filter' )
->params( $this->getViewingUserForGender() )
->numParams( $filter );
}
if ( $disabledActions ) {
$specsFormatter = AbuseFilterServices::getSpecsFormatter();
$specsFormatter->setMessageLocalizer( $this );
$disabledActionsLocalized = [];
foreach ( $disabledActions as $action ) {
$disabledActionsLocalized[] = $specsFormatter->getActionMessage( $action )->text();
}
return $this->msg( 'notification-header-throttle-filter-actions' )
->params( $this->getViewingUserForGender() )
->numParams( $filter )
->params( Message::listParam( $disabledActionsLocalized ) )
->params( count( $disabledActionsLocalized ) );
}
return $this->msg( 'notification-header-throttle-filter-no-actions' )
->params( $this->getViewingUserForGender() )
->numParams( $filter );
}
/**
* @inheritDoc
*/
public function getSubjectMessage() {
return $this->msg( 'notification-subject-throttle-filter' )
->params( $this->getViewingUserForGender() );
}
/**
* @inheritDoc
*/
public function getPrimaryLink() {
return [
'url' => $this->event->getTitle()->getFullURL(),
'label' => $this->msg( 'notification-link-text-show-filter' )->text()
];
}
}