User:Euphoria/massBlock.js: Difference between revisions
From Test Wiki
no edit summary
(Custom block duration and popup interface.) |
No edit summary |
||
Line 1: | Line 1: | ||
if (mw.config.get('wgUserGroups').includes('sysop')) { | if (mw.config.get('wgUserGroups').includes('sysop')) { | ||
function createBlockingInterface() { | function createBlockingInterface() { | ||
var formHtml = '<div id="massBlockForm" style="background: white; border: 1px solid black; padding: 10px;">' | var formHtml = '<div id="massBlockForm" style="background: white; border: 1px solid black; padding: 10px;">' | ||
+ '<h3>Mass Block</h3>' | + '<h3>Mass Block</h3>' | ||
+ 'Usernames (comma-separated):<br><textarea id="usernamesToBlock" rows="2" cols="20"></textarea><br>' | + 'Usernames (comma-separated):<br><textarea id="usernamesToBlock" rows="2" cols="20"></textarea><br>' | ||
+ 'Block reason:<br><input type="text" id="blockReason"><br>' | + 'Block reason:<br><input type="text" id="blockReason"><br>' | ||
+ 'Block duration:<br> | + 'Block duration:<br><select id="blockDuration">' | ||
+ '<option value="6 hours">6 hours</option>' | + '<option value="6 hours">6 hours</option>' | ||
+ '<option value="24 hours">24 hours</option>' | + '<option value="24 hours">24 hours</option>' | ||
Line 23: | Line 17: | ||
+ '<option value="5 years">5 years</option>' | + '<option value="5 years">5 years</option>' | ||
+ '<option value="indefinite">indefinite</option>' | + '<option value="indefinite">indefinite</option>' | ||
+ '</select><br>' | + '</select><br>' | ||
+ '<button id="executeMassBlock">Block Users</button>' | + '<button id="executeMassBlock">Block Users</button>' | ||
+ '</div>'; | + '</div>'; | ||
// Append the form to a specific part of the Wikipedia interface | |||
$('#someWikipediaContainer').append(formHtml); | |||
$('#executeMassBlock').click(function() { | |||
var users = | var users = $('#usernamesToBlock').val().split(','); | ||
var reason = | var reason = $('#blockReason').val(); | ||
var duration = | var duration = $('#blockDuration').val(); | ||
users.forEach(function(user) { | users.forEach(function(user) { | ||
blockUser(user.trim(), reason, duration); | blockUser(user.trim(), reason, duration); | ||
}); | }); | ||
} | }); | ||
} | } | ||
function blockUser(username, reason, duration) { | function blockUser(username, reason, duration) { | ||
var api = new mw.Api(); | var api = new mw.Api(); | ||
Line 70: | Line 51: | ||
} | } | ||
$(document).ready(function() { | $(document).ready(function() { | ||
createBlockingInterface(); | |||
}); | }); | ||
} | } |