summaryrefslogtreecommitdiff
blob: 99d62e267fa0851b7d2999478b740de726968041 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/**
 * Adds a link to Special:MultiLock on a central wiki if $wgCheckUserCAMultiLock
 * is configured on the Special:CheckUser's block form
 */
( function ( mw, $ ) {
	var centralURL = mw.config.get( 'wgCUCAMultiLockCentral' ),
		$userCheckboxes = $( '#checkuserresults li :checkbox' );

	// Initialize the link
	$( '#checkuserblock fieldset' ).append(
		$( '<a>', {
			id: 'cacu-multilock-link',
			text: mw.msg( 'checkuser-centralauth-multilock' ),
			href: centralURL,
		} )
	);

	// Change the URL of the link when a checkbox's state is changed
	$userCheckboxes.on( 'change', function() {
		var names = [];
		$.each( $userCheckboxes.serializeArray(), function( i, obj ) {
			if ( obj.name && obj.name === 'users[]' ) {
				// Only registered accounts (not IPs) can be locked
				if ( !mw.util.isIPAddress( obj.value ) ) {
					names.push( obj.value );
				}
			}
		} );

		var mlHref = centralURL + '?wpTarget=' + encodeURIComponent( names.join( '\n' ) );
		// Update the href of the link with the latest change
		$( '#cacu-multilock-link' ).prop( 'href', mlHref );
	} );

}( mediaWiki, jQuery ) );