Revision: 46101
Author: werdna
Date: 2009-01-23 22:49:13 +0000 (Fri, 23 Jan 2009)
Log Message:
-----------
Put filter-builterator on tools page.
Modified Paths:
--------------
trunk/extensions/AbuseFilter/AbuseFilter.class.php
trunk/extensions/AbuseFilter/AbuseFilter.i18n.php
trunk/extensions/AbuseFilter/Views/AbuseFilterViewEdit.php
trunk/extensions/AbuseFilter/Views/AbuseFilterViewTools.php
trunk/extensions/AbuseFilter/edit.js
Removed Paths:
-------------
trunk/extensions/AbuseFilter/Views/edit.js
Modified: trunk/extensions/AbuseFilter/AbuseFilter.class.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.class.php 2009-01-23 22:36:09 UTC
(rev 46100)
+++ trunk/extensions/AbuseFilter/AbuseFilter.class.php 2009-01-23 22:49:13 UTC
(rev 46101)
@@ -627,4 +627,47 @@
return $user;
}
+
+ function buildEditBox( $rules, $textName = 'wpFilterRules' ) {
+ global $wgOut;
+
+ $rules = Xml::textarea( $textName, ( isset( $rules ) ?
$rules."\n" : "\n" ) );
+
+ $dropDown = array(
+ 'op-arithmetic' => array('+' => 'addition', '-' =>
'subtraction', '*' => 'multiplication', '/' => 'divide', '%' => 'modulo', '**'
=> 'pow'),
+ 'op-comparison' => array('==' => 'equal', '!=' =>
'notequal', '<' => 'lt', '>' => 'gt', '<=' => 'lte', '>=' => 'gte'),
+ 'op-bool' => array( '!' => 'not', '&' => 'and', '|' =>
'or', '^' => 'xor' ),
+ 'misc' => array( 'in' => 'in', 'like' => 'like', '""'
=> 'stringlit', ),
+ 'funcs' => array( 'length(string)' => 'length',
'lcase(string)' => 'lcase', 'ccnorm(string)' => 'ccnorm', 'rmdoubles(string)'
=> 'rmdoubles', 'specialratio(string)' => 'specialratio', 'norm(string)' =>
'norm', 'count(needle,haystack)' => 'count' ),
+ 'vars' => array( 'ACCOUNTNAME' => 'accountname',
'ACTION' => 'action', 'ADDED_LINES' => 'addedlines', 'EDIT_DELTA' => 'delta',
'EDIT_DIFF' => 'diff', 'NEW_SIZE' => 'newsize', 'OLD_SIZE' => 'oldsize',
'REMOVED_LINES' => 'removedlines', 'SUMMARY' => 'summary', 'ARTICLE_ARTICLEID'
=> 'article-id', 'ARTICLE_NAMESPACE' => 'article-ns', 'ARTICLE_TEXT' =>
'article-text', 'ARTICLE_PREFIXEDTEXT' => 'article-prefixedtext',
'MOVED_FROM_ARTICLEID' => 'movedfrom-id', 'MOVED_FROM_NAMESPACE' =>
'movedfrom-ns', 'MOVED_FROM_TEXT' => 'movedfrom-text',
'MOVED_FROM_PREFIXEDTEXT' => 'movedfrom-prefixedtext', 'MOVED_TO_ARTICLEID' =>
'movedto-id', 'MOVED_TO_NAMESPACE' => 'movedto-ns', 'MOVED_TO_TEXT' =>
'movedto-text', 'MOVED_TO_PREFIXEDTEXT' => 'movedto-prefixedtext',
'USER_EDITCOUNT' => 'user-editcount', 'USER_AGE' => 'user-age', 'USER_NAME' =>
'user-name', 'USER_GROUPS' => 'user-groups', 'USER_EMAILCONFIRM' =>
'user-emailconfirm'),
+ );
+
+ // Generate builder drop-down
+ $builder = '';
+
+ $builder .= Xml::option( wfMsg(
"abusefilter-edit-builder-select") );
+
+ foreach( $dropDown as $group => $values ) {
+ $builder .= Xml::openElement( 'optgroup', array(
'label' => wfMsg( "abusefilter-edit-builder-group-$group" ) ) ) . "\n";
+
+ foreach( $values as $content => $name ) {
+ $builder .= Xml::option( wfMsg(
"abusefilter-edit-builder-$group-$name" ), $content ) . "\n";
+ }
+
+ $builder .= Xml::closeElement( 'optgroup' ) . "\n";
+ }
+
+ $rules .= Xml::tags( 'select', array( 'id' =>
'wpFilterBuilder', 'onchange' => 'addText();' ), $builder );
+
+ // Add syntax checking
+ $rules .= Xml::element( 'input', array( 'type' => 'button',
'onclick' => 'doSyntaxCheck()', 'value' => wfMsg( 'abusefilter-edit-check' ),
'id' => 'mw-abusefilter-syntaxcheck' ) );
+ $rules .= Xml::element( 'div', array( 'id' =>
'mw-abusefilter-syntaxresult', 'style' => 'display: none;' ), ' ' );
+
+ // Add script
+ $editScript = file_get_contents(dirname(__FILE__)."/edit.js");
+ $editScript = "var wgFilterBoxName = ".Xml::encodeJSVar(
$textName ).";\n$editScript";
+ $wgOut->addInlineScript( $editScript );
+
+ return $rules;
+ }
}
Modified: trunk/extensions/AbuseFilter/AbuseFilter.i18n.php
===================================================================
--- trunk/extensions/AbuseFilter/AbuseFilter.i18n.php 2009-01-23 22:36:09 UTC
(rev 46100)
+++ trunk/extensions/AbuseFilter/AbuseFilter.i18n.php 2009-01-23 22:49:13 UTC
(rev 46101)
@@ -114,7 +114,7 @@
'abusefilter-tools-expr' => 'Expression tester',
'abusefilter-tools-submitexpr' => 'Evaluate',
'abusefilter-tools-reautoconfirm' => 'Restore autoconfirmed status',
- 'abusefilter-tools-reautoconfirm-user' => 'User',
+ 'abusefilter-tools-reautoconfirm-user' => 'User:',
'abusefilter-tools-reautoconfirm-submit' => 'Re-autoconfirm',
'abusefilter-reautoconfirm-none' => 'That user has not had their
autoconfirmed status suspended.',
'abusefilter-reautoconfirm-notallowed' => 'You are not allowed to
restore autoconfirmed status.',
Modified: trunk/extensions/AbuseFilter/Views/AbuseFilterViewEdit.php
===================================================================
--- trunk/extensions/AbuseFilter/Views/AbuseFilterViewEdit.php 2009-01-23
22:36:09 UTC (rev 46100)
+++ trunk/extensions/AbuseFilter/Views/AbuseFilterViewEdit.php 2009-01-23
22:49:13 UTC (rev 46101)
@@ -195,7 +195,7 @@
}
}
- $fields['abusefilter-edit-rules'] = $this->buildEditBox($row);
+ $fields['abusefilter-edit-rules'] =
AbuseFilter::buildEditBox($row->af_pattern);
$fields['abusefilter-edit-notes'] = Xml::textarea(
'wpFilterNotes', ( isset( $row->af_comments ) ? $row->af_comments."\n" : "\n" )
);
// Build checkboxen
@@ -243,47 +243,6 @@
return $output;
}
- function buildEditBox( $row ) {
- global $wgOut;
-
- $rules = Xml::textarea( 'wpFilterRules', ( isset(
$row->af_pattern ) ? $row->af_pattern."\n" : "\n" ) );
-
- $dropDown = array(
- 'op-arithmetic' => array('+' => 'addition', '-' =>
'subtraction', '*' => 'multiplication', '/' => 'divide', '%' => 'modulo', '**'
=> 'pow'),
- 'op-comparison' => array('==' => 'equal', '!=' =>
'notequal', '<' => 'lt', '>' => 'gt', '<=' => 'lte', '>=' => 'gte'),
- 'op-bool' => array( '!' => 'not', '&' => 'and', '|' =>
'or', '^' => 'xor' ),
- 'misc' => array( 'in' => 'in', 'like' => 'like', '""'
=> 'stringlit', ),
- 'funcs' => array( 'length(string)' => 'length',
'lcase(string)' => 'lcase', 'ccnorm(string)' => 'ccnorm', 'rmdoubles(string)'
=> 'rmdoubles', 'specialratio(string)' => 'specialratio', 'norm(string)' =>
'norm', 'count(needle,haystack)' => 'count' ),
- 'vars' => array( 'ACCOUNTNAME' => 'accountname',
'ACTION' => 'action', 'ADDED_LINES' => 'addedlines', 'EDIT_DELTA' => 'delta',
'EDIT_DIFF' => 'diff', 'NEW_SIZE' => 'newsize', 'OLD_SIZE' => 'oldsize',
'REMOVED_LINES' => 'removedlines', 'SUMMARY' => 'summary', 'ARTICLE_ARTICLEID'
=> 'article-id', 'ARTICLE_NAMESPACE' => 'article-ns', 'ARTICLE_TEXT' =>
'article-text', 'ARTICLE_PREFIXEDTEXT' => 'article-prefixedtext',
'MOVED_FROM_ARTICLEID' => 'movedfrom-id', 'MOVED_FROM_NAMESPACE' =>
'movedfrom-ns', 'MOVED_FROM_TEXT' => 'movedfrom-text',
'MOVED_FROM_PREFIXEDTEXT' => 'movedfrom-prefixedtext', 'MOVED_TO_ARTICLEID' =>
'movedto-id', 'MOVED_TO_NAMESPACE' => 'movedto-ns', 'MOVED_TO_TEXT' =>
'movedto-text', 'MOVED_TO_PREFIXEDTEXT' => 'movedto-prefixedtext',
'USER_EDITCOUNT' => 'user-editcount', 'USER_AGE' => 'user-age', 'USER_NAME' =>
'user-name', 'USER_GROUPS' => 'user-groups', 'USER_EMAILCONFIRM' =>
'user-emailconfirm'),
- );
-
- // Generate builder drop-down
- $builder = '';
-
- $builder .= Xml::option( wfMsg(
"abusefilter-edit-builder-select") );
-
- foreach( $dropDown as $group => $values ) {
- $builder .= Xml::openElement( 'optgroup', array(
'label' => wfMsg( "abusefilter-edit-builder-group-$group" ) ) ) . "\n";
-
- foreach( $values as $content => $name ) {
- $builder .= Xml::option( wfMsg(
"abusefilter-edit-builder-$group-$name" ), $content ) . "\n";
- }
-
- $builder .= Xml::closeElement( 'optgroup' ) . "\n";
- }
-
- $rules .= Xml::tags( 'select', array( 'id' =>
'wpFilterBuilder', 'onchange' => 'addText();' ), $builder );
-
- // Add syntax checking
- $rules .= Xml::element( 'input', array( 'type' => 'button',
'onclick' => 'doSyntaxCheck()', 'value' => wfMsg( 'abusefilter-edit-check' ),
'id' => 'mw-abusefilter-syntaxcheck' ) );
- $rules .= Xml::element( 'div', array( 'id' =>
'mw-abusefilter-syntaxresult', 'style' => 'display: none;' ), ' ' );
-
- // Add script
- $wgOut->addInlineScript(
file_get_contents(dirname(__FILE__)."/edit.js") );
-
- return $rules;
- }
-
function buildConsequenceEditor( $row, $actions ) {
global $wgAbuseFilterAvailableActions;
$setActions = array();
Modified: trunk/extensions/AbuseFilter/Views/AbuseFilterViewTools.php
===================================================================
--- trunk/extensions/AbuseFilter/Views/AbuseFilterViewTools.php 2009-01-23
22:36:09 UTC (rev 46100)
+++ trunk/extensions/AbuseFilter/Views/AbuseFilterViewTools.php 2009-01-23
22:49:13 UTC (rev 46101)
@@ -13,44 +13,15 @@
// Expression evaluator
$eval = '';
- $eval .= Xml::textarea( 'wpTestExpr', "" );
+ $eval .= AbuseFilter::buildEditBox( '', 'wpTestExpr' );
$eval .= Xml::tags( 'p', null, Xml::element( 'input', array(
'type' => 'button', 'id' => 'mw-abusefilter-submitexpr', 'onclick' =>
'doExprSubmit();', 'value' => wfMsg( 'abusefilter-tools-submitexpr' ) ) ) );
$eval .= Xml::element( 'p', array( 'id' =>
'mw-abusefilter-expr-result' ), ' ' );
$eval = Xml::fieldset( wfMsg( 'abusefilter-tools-expr' ), $eval
);
$wgOut->addHTML( $eval );
// Associated script
- $exprScript = "function doExprSubmit()
- {
- var expr = document.getElementById('wpTestExpr').value;
- injectSpinner( document.getElementById(
'mw-abusefilter-submitexpr' ), 'abusefilter-expr' );
- sajax_do_call( 'AbuseFilter::ajaxEvaluateExpression',
[expr], processExprResult );
- }
- function processExprResult( request ) {
- var response = request.responseText;
+ $exprScript = file_get_contents( dirname( __FILE__ ) .
'/tools.js' );
- removeSpinner( 'abusefilter-expr' );
-
- var el = document.getElementById(
'mw-abusefilter-expr-result' );
- changeText( el, response );
- }
- function doReautoSubmit()
- {
- var name =
document.getElementById('reautoconfirm-user').value;
- injectSpinner( document.getElementById(
'mw-abusefilter-reautoconfirmsubmit' ), 'abusefilter-reautoconfirm' );
- sajax_do_call( 'AbuseFilter::ajaxReAutoconfirm',
[name], processReautoconfirm );
- }
- function processReautoconfirm( request ) {
- var response = request.responseText;
-
- if (strlen(response)) {
- jsMsg( response );
- }
-
- removeSpinner( 'abusefilter-reautoconfirm' );
- }
- ";
-
$wgOut->addInlineScript( $exprScript );
global $wgUser;
@@ -59,6 +30,7 @@
// Hacky little box to re-enable autoconfirmed if it
got disabled
$rac = '';
$rac .= Xml::inputLabel( wfMsg(
'abusefilter-tools-reautoconfirm-user' ), 'wpReAutoconfirmUser',
'reautoconfirm-user', 45 );
+ $rac .= ' ';
$rac .= Xml::element( 'input', array( 'type' =>
'button', 'id' => 'mw-abusefilter-reautoconfirmsubmit', 'onclick' =>
'doReautoSubmit();', 'value' => wfMsg( 'abusefilter-tools-reautoconfirm-submit'
) ) );
$rac = Xml::fieldset( wfMsg(
'abusefilter-tools-reautoconfirm' ), $rac );
$wgOut->addHTML( $rac );
Deleted: trunk/extensions/AbuseFilter/Views/edit.js
===================================================================
--- trunk/extensions/AbuseFilter/Views/edit.js 2009-01-23 22:36:09 UTC (rev
46100)
+++ trunk/extensions/AbuseFilter/Views/edit.js 2009-01-23 22:49:13 UTC (rev
46101)
@@ -1,61 +0,0 @@
-function doSyntaxCheck()
-{
- var filter = document.getElementById('wpFilterRules').value;
- injectSpinner( document.getElementById( 'mw-abusefilter-syntaxcheck' ),
'abusefilter-syntaxcheck' );
- sajax_do_call( 'AbuseFilter::ajaxCheckSyntax', [filter],
processSyntaxResult );
-}
-function processSyntaxResult( request ) {
- var response = request.responseText;
-
- removeSpinner( 'abusefilter-syntaxcheck' );
-
- var el = document.getElementById( 'mw-abusefilter-syntaxresult' );
- el.style.display = 'block';
-
- if (response.match( /OK/ )) {
- // Successful
- changeText( el, 'No syntax errors.' );
- el.syntaxOk = true;
- } else {
- var error = response.substr(4);
- changeText( el, 'Syntax error: '+error );
- el.syntaxOk = false;
- }
-}
-function addText() {
- if (document.getElementById('wpFilterBuilder').selectedIndex == 0) {
- return;
- }
-
- insertAtCursor(document.getElementById('wpFilterRules'),
document.getElementById('wpFilterBuilder').value + " ");
- document.getElementById('wpFilterBuilder').selectedIndex = 0;
-}
-
-//From http://clipmarks.com/clipmark/CEFC94CB-94D6-4495-A7AA-791B7355E284/
-function insertAtCursor(myField, myValue) {
- //IE support
- if (document.selection) {
- myField.focus();
- sel = document.selection.createRange();
- sel.text = myValue;
- }
- //MOZILLA/NETSCAPE support
- else if (myField.selectionStart || myField.selectionStart == '0') {
- var startPos = myField.selectionStart;
- var endPos = myField.selectionEnd;
- myField.value = myField.value.substring(0, startPos)
- + myValue
- + myField.value.substring(endPos, myField.value.length);
- } else {
- myField.value += myValue;
- }
-}
-
-addOnloadHook( function() {
- addHandler( document.getElementById( 'wpFilterRules' ), 'keyup',
function() {
- el = document.getElementById( 'mw-abusefilter-syntaxresult' );
- if (el.syntaxOk == true) {
- el.style.display = 'none';
- }
- } );
-} );
\ No newline at end of file
Modified: trunk/extensions/AbuseFilter/edit.js
===================================================================
--- trunk/extensions/AbuseFilter/edit.js 2009-01-23 22:36:09 UTC (rev
46100)
+++ trunk/extensions/AbuseFilter/edit.js 2009-01-23 22:49:13 UTC (rev
46101)
@@ -1,9 +1,10 @@
function doSyntaxCheck()
{
- var filter = document.getElementById('wpFilterRules').value;
+ var filter = document.getElementById(wgFilterBoxName).value;
injectSpinner( document.getElementById( 'mw-abusefilter-syntaxcheck' ),
'abusefilter-syntaxcheck' );
sajax_do_call( 'AbuseFilter::ajaxCheckSyntax', [filter],
processSyntaxResult );
}
+
function processSyntaxResult( request ) {
var response = request.responseText;
@@ -15,17 +16,20 @@
if (response.match( /OK/ )) {
// Successful
changeText( el, 'No syntax errors.' );
+ el.syntaxOk = true;
} else {
var error = response.substr(4);
changeText( el, 'Syntax error: '+error );
+ el.syntaxOk = false;
}
}
+
function addText() {
if (document.getElementById('wpFilterBuilder').selectedIndex == 0) {
return;
}
- insertAtCursor(document.getElementById('wpFilterRules'),
document.getElementById('wpFilterBuilder').value + " ");
+ insertAtCursor(document.getElementById(wgFilterBoxName),
document.getElementById('wpFilterBuilder').value + " ");
document.getElementById('wpFilterBuilder').selectedIndex = 0;
}
@@ -50,7 +54,10 @@
}
addOnloadHook( function() {
- addHandler( document.getElementById( 'wpFilterRules' ), 'keyup',
function() {
- document.getElementById( 'mw-abusefilter-syntaxresult'
).style.display = 'none';
+ addHandler( document.getElementById( wgFilterBoxName ), 'keyup',
function() {
+ el = document.getElementById( 'mw-abusefilter-syntaxresult' );
+ if (el.syntaxOk == true) {
+ el.style.display = 'none';
+ }
} );
} );
\ No newline at end of file
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs