mirror of
https://gerrit.wikimedia.org/r/mediawiki/extensions/AbuseFilter.git
synced 2024-11-27 15:30:42 +00:00
26c72c1cd9
Bug: T132284 Change-Id: I139b30399f83d43c4da565b25726d8786d02d1ef
113 lines
2.7 KiB
JavaScript
113 lines
2.7 KiB
JavaScript
/**
|
|
* JavaScript for AbuseFilter tools
|
|
*
|
|
* @author John Du Hart
|
|
* @author Marius Hoch <hoo@online.de>
|
|
*/
|
|
|
|
( function ( mw, $, OO ) {
|
|
'use strict';
|
|
|
|
/**
|
|
* Submits the expression to be evaluated.
|
|
* @context HTMLElement
|
|
* @param {jQuery.Event} e
|
|
*/
|
|
function doExprSubmit() {
|
|
var expr = $( '#wpTestExpr' ).val(),
|
|
api = new mw.Api();
|
|
$( this ).injectSpinner( { id: 'abusefilter-expr', size: 'large' } );
|
|
|
|
api.post( {
|
|
action: 'abusefilterevalexpression',
|
|
expression: expr
|
|
} )
|
|
.fail( function ( error, details ) {
|
|
var msg = error === 'http' ? 'abusefilter-http-error' : 'unknown-error';
|
|
$.removeSpinner( 'abusefilter-expr' );
|
|
$( '#mw-abusefilter-expr-result' )
|
|
.text( mw.msg( msg, details.exception ) );
|
|
} )
|
|
.done( function ( data ) {
|
|
$.removeSpinner( 'abusefilter-expr' );
|
|
|
|
$( '#mw-abusefilter-expr-result' )
|
|
.text( data.abusefilterevalexpression.result );
|
|
} );
|
|
}
|
|
|
|
/**
|
|
* Processes the result of the unblocking autopromotions for a user
|
|
*
|
|
* @param {Object} data
|
|
*/
|
|
function processReautoconfirm( data ) {
|
|
mw.notify(
|
|
mw.message( 'abusefilter-reautoconfirm-done', data.abusefilterunblockautopromote.user ).toString()
|
|
);
|
|
|
|
$.removeSpinner( 'abusefilter-reautoconfirm' );
|
|
}
|
|
|
|
/**
|
|
* Processes the result of the unblocking autopromotions for a user in case of an error
|
|
*
|
|
* @param {string} errorCode
|
|
* @param {Object} data
|
|
*/
|
|
function processReautoconfirmFailure( errorCode, data ) {
|
|
var msg;
|
|
|
|
switch ( errorCode ) {
|
|
case 'permissiondenied':
|
|
msg = mw.msg( 'abusefilter-reautoconfirm-notallowed' );
|
|
break;
|
|
case 'http':
|
|
msg = mw.msg( 'abusefilter-http-error', data && data.exception );
|
|
break;
|
|
case 'notsuspended':
|
|
msg = data.error.info;
|
|
break;
|
|
default:
|
|
msg = mw.msg( 'unknown-error' );
|
|
break;
|
|
}
|
|
mw.notify( msg );
|
|
|
|
$.removeSpinner( 'abusefilter-reautoconfirm' );
|
|
}
|
|
|
|
/**
|
|
* Submits a call to reautoconfirm a user.
|
|
* @context HTMLElement
|
|
* @param {jQuery.Event} e
|
|
* @return {boolean}
|
|
*/
|
|
function doReautoSubmit() {
|
|
var nameField = OO.ui.infuse( $( '#reautoconfirm-user' ) ),
|
|
name = nameField.getValue(),
|
|
api;
|
|
|
|
if ( name === '' ) {
|
|
return false;
|
|
}
|
|
|
|
$( this ).injectSpinner( { id: 'abusefilter-reautoconfirm', size: 'large' } );
|
|
|
|
api = new mw.Api();
|
|
api.post( {
|
|
action: 'abusefilterunblockautopromote',
|
|
user: name,
|
|
token: mw.user.tokens.get( 'editToken' )
|
|
} )
|
|
.done( processReautoconfirm )
|
|
.fail( processReautoconfirmFailure );
|
|
return false;
|
|
}
|
|
|
|
$( document ).ready( function () {
|
|
$( '#mw-abusefilter-submitexpr' ).click( doExprSubmit );
|
|
$( '#mw-abusefilter-reautoconfirmsubmit' ).click( doReautoSubmit );
|
|
} );
|
|
}( mediaWiki, jQuery, OO ) );
|