Bartosz Dziewoński has uploaded a new change for review.
https://gerrit.wikimedia.org/r/295596
Change subject: Allow setting a custom message for filters that disallow actions
......................................................................
Allow setting a custom message for filters that disallow actions
We already have the code to produce the right response if a custom
message is set, but the user interface did not allow setting it.
Bug: T138435
Change-Id: Ib47810f78dcf1c8b01fd5e7dff9c5821e2447bbe
---
M Views/AbuseFilterViewEdit.php
1 file changed, 42 insertions(+), 24 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/AbuseFilter
refs/changes/96/295596/1
diff --git a/Views/AbuseFilterViewEdit.php b/Views/AbuseFilterViewEdit.php
index 7cee9c7..4f2dbcf 100644
--- a/Views/AbuseFilterViewEdit.php
+++ b/Views/AbuseFilterViewEdit.php
@@ -655,11 +655,17 @@
array( 'disabled' => '1', 'class' =>
'mw-abusefilter-action-checkbox' ) );
return Xml::tags( 'p', null, $checkbox );
case 'warn':
+ case 'disallow':
global $wgAbuseFilterDefaultWarningMessage;
$output = '';
+ // abusefilter-edit-action-warn,
abusefilter-edit-action-disallow
+ $message = 'abusefilter-edit-action-' . $action;
+ // wpFilterActionWarn, wpFilterActionDisallow
+ $form_field = 'wpFilterAction' . ucfirst(
$action );
+ $status = $set;
$checkbox = Xml::checkLabel(
- $this->msg(
'abusefilter-edit-action-warn' )->text(),
- 'wpFilterActionWarn',
+ $this->msg( $message )->text(),
+ $form_field,
"mw-abusefilter-action-checkbox-$action",
$set,
array( 'class' =>
'mw-abusefilter-action-checkbox' ) + $cbReadOnlyAttrib );
@@ -667,51 +673,54 @@
if ( $set ) {
$warnMsg = $parameters[0];
} elseif (
- $row &&
+ $action === 'warn' && $row &&
isset( $row->af_group ) &&
$row->af_group &&
isset(
$wgAbuseFilterDefaultWarningMessage[$row->af_group] )
) {
$warnMsg =
$wgAbuseFilterDefaultWarningMessage[$row->af_group];
- } else {
+ } elseif ( $action === 'warn' ) {
$warnMsg = 'abusefilter-warning';
+ } else {
+ $warnMsg = 'abusefilter-disallow';
}
- $warnFields['abusefilter-edit-warn-message'] =
- $this->getExistingSelector( $warnMsg );
-
$warnFields['abusefilter-edit-warn-other-label'] =
+ $warnFields["abusefilter-edit-warn-message"] =
+ $this->getExistingSelector( $action,
$warnMsg );
+
$warnFields["abusefilter-edit-warn-other-label"] =
Xml::input(
- 'wpFilterWarnMessageOther',
+ // wpFilterWarnMessageOther,
wpFilterDisallowMessageOther
+ 'wpFilter' . ucfirst( $action )
. 'MessageOther',
45,
$warnMsg,
- array( 'id' =>
'mw-abusefilter-warn-message-other' ) + $cbReadOnlyAttrib
+ array( 'id' =>
"mw-abusefilter-warn-message-other" ) + $cbReadOnlyAttrib
);
$previewButton = Xml::element(
'input',
array(
'type' => 'button',
- 'id' =>
'mw-abusefilter-warn-preview-button',
- 'value' => $this->msg(
'abusefilter-edit-warn-preview' )->text()
+ 'id' =>
"mw-abusefilter-$action-preview-button",
+ 'value' => $this->msg(
"abusefilter-edit-warn-preview" )->text()
)
);
$editButton = Xml::element(
'input',
array(
'type' => 'button',
- 'id' =>
'mw-abusefilter-warn-edit-button',
- 'value' => $this->msg(
'abusefilter-edit-warn-edit' )->text()
+ 'id' =>
"mw-abusefilter-$action-edit-button",
+ 'value' => $this->msg(
"abusefilter-edit-warn-edit" )->text()
)
);
$previewHolder = Xml::element(
'div',
- array( 'id' =>
'mw-abusefilter-warn-preview' ), ''
+ array( 'id' =>
"mw-abusefilter-$action-preview" ), ''
);
- $warnFields['abusefilter-edit-warn-actions'] =
+ $warnFields["abusefilter-edit-warn-actions"] =
Xml::tags( 'p', null, "$previewButton
$editButton" ) . "\n$previewHolder";
$output .=
Xml::tags(
'div',
- array( 'id' =>
'mw-abusefilter-warn-parameters' ),
+ array( 'id' =>
"mw-abusefilter-$action-parameters" ),
Xml::buildForm( $warnFields )
);
return $output;
@@ -742,7 +751,6 @@
return $output;
default:
// Give grep a chance to find the usages:
- // abusefilter-edit-action-warn,
abusefilter-edit-action-disallow
// abusefilter-edit-action-flag,
abusefilter-edit-action-blockautopromote
// abusefilter-edit-action-degroup,
abusefilter-edit-action-block
// abusefilter-edit-action-throttle,
abusefilter-edit-action-rangeblock
@@ -764,14 +772,17 @@
}
/**
- * @param $warnMsg
+ * @param string $action
+ * @param string $warnMsg
* @return string
*/
- function getExistingSelector( $warnMsg ) {
+ function getExistingSelector( $action, $warnMsg ) {
+ $msg = $action === 'warn' ? 'warning' : $action;
$existingSelector = new XmlSelect(
- 'wpFilterWarnMessage',
+ // wpFilterWarnMessage, wpFilterDisallowMessage
+ 'wpFilter' . ucfirst( $action ) . 'Message',
'mw-abusefilter-warn-message-existing',
- $warnMsg == 'abusefilter-warning' ?
'abusefilter-warning' : 'other'
+ $warnMsg == "abusefilter-$msg" ? "abusefilter-$msg" :
'other'
);
// Find other messages.
@@ -781,12 +792,12 @@
array( 'page_title' ),
array(
'page_namespace' => 8,
- 'page_title LIKE ' . $dbr->addQuotes(
'Abusefilter-warning%' )
+ 'page_title LIKE ' . $dbr->addQuotes(
"Abusefilter-$msg%" )
),
__METHOD__
);
- $existingSelector->addOption( 'abusefilter-warning' );
+ $existingSelector->addOption( "abusefilter-$msg" );
$lang = $this->getLanguage();
foreach ( $res as $row ) {
@@ -794,7 +805,7 @@
$existingSelector->setDefault( $lang->lcfirst(
$warnMsg ) );
}
- if ( $row->page_title != 'Abusefilter-warning' ) {
+ if ( $row->page_title != "Abusefilter-$msg" ) {
$existingSelector->addOption( $lang->lcfirst(
$row->page_title ) );
}
}
@@ -972,6 +983,13 @@
$specMsg =
$request->getVal( 'wpFilterWarnMessageOther' );
$parameters[0] = $specMsg;
+ } elseif ( $action == 'disallow' ) {
+ $specMsg = $request->getVal(
'wpFilterDisallowMessage' );
+
+ if ( $specMsg == 'other' )
+ $specMsg =
$request->getVal( 'wpFilterDisallowMessageOther' );
+
+ $parameters[0] = $specMsg;
} elseif ( $action == 'tag' ) {
$parameters = explode( "\n",
$request->getText( 'wpFilterTags' ) );
}
--
To view, visit https://gerrit.wikimedia.org/r/295596
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib47810f78dcf1c8b01fd5e7dff9c5821e2447bbe
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/AbuseFilter
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits