User:Kanonkas/userrights.js
Jump to navigation
Jump to search
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: press Ctrl-F5, Mozilla: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Opera/Konqueror: press F5, Safari: hold down Shift + Alt while clicking Reload, Chrome: hold down Shift while clicking Reload.
Documentation for this user script can be added at User:Kanonkas/userrights. |
- Report page listing warnings and errors.
importStylesheet('User:Kanonkas/Scripts/Add LI menu/css');
function addlilink(tabs, url, name, id, title, key){
var na = document.createElement('a');
na.href = url;
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
if(id) li.id = id;
li.appendChild(na);
tabs.appendChild(li);
if(id)
{
if(key && title)
{
ta[id] = [key, title];
}
else if(key)
{
ta[id] = [key, ''];
}
else if(title)
{
ta[id] = ['', title];
}
}
// re-render the title and accesskeys from existing code in wikibits.js
akeytt();
return li;
}
function addlimenu(tabs, name, id)
{
var na = document.createElement('a');
na.href = '#';
var mn = document.createElement('ul');
na.appendChild(document.createTextNode(name));
var li = document.createElement('li');
li.id = id;
li.className = 'tabmenu';
li.appendChild(na);
li.appendChild(mn);
tabs.appendChild(li);
return li;
}
function addGroups(rollback, ipblockExempt, accountcreator) {
var accountcreator = accountcreator.length;
var rollback = rollback.length;
var ipblockExempt = ipblockExempt.length;
if(rollback > 0) document.getElementById("wpGroup-rollbacker").checked = true;
if(ipblockExempt > 0) document.getElementById("wpGroup-ipblock-exempt").checked = true;
if(accountcreator > 0) document.getElementById("wpGroup-accountcreator").checked = true;
document.getElementById("wpReason").value = "Granting the following rights: " + (rollback > 0 ? "rollback" + (ipblockExempt > 0 || accountcreator > 0 ? ", " : "") : "") + (ipblockExempt > 0 ? "ipblock-exempt" + (accountcreator > 0 ? ", " : "") : "") + (accountcreator > 0 ? "accountcreator" : "");
window.setTimeout(function() { getElementsByClassName(document, "td", "mw-submit")[0].getElementsByTagName("input")[0].click(); }, 2000);
}
function removeGroups(rollback, ipblockExempt, accountcreator) {
var accountcreator = accountcreator.length;
var rollback = rollback.length;
var ipblockExempt = ipblockExempt.length;
if(rollback > 0) document.getElementById("wpGroup-rollbacker").checked = false;
if(ipblockExempt > 0) document.getElementById("wpGroup-ipblock-exempt").checked = false;
if(accountcreator > 0) document.getElementById("wpGroup-accountcreator").checked = false;
document.getElementById("wpReason").value = "Removing the following rights: " + (rollback > 0 ? "rollback" + (ipblockExempt > 0 || accountcreator > 0 ? ", " : "") : "") + (ipblockExempt > 0 ? "ipblock-exempt" + (accountcreator > 0 ? ", " : "") : "") + (accountcreator > 0 ? "accountcreator" : "");
window.setTimeout(function() { getElementsByClassName(document, "td", "mw-submit")[0].getElementsByTagName("input")[0].click(); }, 2000);
}
$(function() {
if(wgCanonicalSpecialPageName == "Userrights" && wgNamespaceNumber == -1 && document.getElementById("username").value.length > 0) {
addlimenu(document.getElementById("p-cactions").getElementsByTagName("ul")[0], "add", "ca-addrights", "");
var addrights = document.getElementById("ca-addrights").getElementsByTagName("ul")[0];
addlilink(addrights, "javascript:addGroups('rollback', '', '')", "rollback", "");
addlilink(addrights, "javascript:addGroups('', 'ipblock-exempt', '')", "ipblock-exempt", "");
addlilink(addrights, "javascript:addGroups('', '', 'accountcreator')", "accountcreator", "");
addlilink(addrights, "javascript:addGroups('rollback', 'ipblock-exempt', '')", "rollback+ipblock-exempt", "");
addlilink(addrights, "javascript:addGroups('rollback', '', 'accountcreator')", "rollback+accountcreator", "");
addlilink(addrights, "javascript:addGroups('', 'ipblock-exempt', 'accountcreator')", "ipblock-exempt+accountcreator", "");
addlilink(addrights, "javascript:addGroups('rollback', 'ipblock-exempt', 'accountcreator')", "all modifiable rights", "");
addlimenu(document.getElementById("p-cactions").getElementsByTagName("ul")[0], "remove", "ca-removerights", "");
var removerights = document.getElementById("ca-removerights").getElementsByTagName("ul")[0];
addlilink(removerights, "javascript:removeGroups('rollback', '', '')", "rollback", "");
addlilink(removerights, "javascript:removeGroups('', 'ipblock-exempt', '')", "ipblock-exempt", "");
addlilink(removerights, "javascript:removeGroups('', '', 'accountcreator')", "accountcreator", "");
addlilink(removerights, "javascript:removeGroups('rollback', 'ipblock-exempt', '')", "rollback+ipblock-exempt", "");
addlilink(removerights, "javascript:removeGroups('rollback', '', 'accountcreator')", "rollback+accountcreator", "");
addlilink(removerights, "javascript:removeGroups('', 'ipblock-exempt', 'accountcreator')", "ipblock-exempt+accountcreator", "");
addlilink(removerights, "javascript:removeGroups('rollback', 'ipblock-exempt', 'accountcreator')", "all modifiable rights", "");
}
});
$(function() {
if(((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && !wgTitle.split("/")[1]) || (wgNamespaceNumber == -1 && wgCanonicalSpecialPageName == "Contributions")) {
mw.util.addPortletLink("p-cactions", wgScript + "?title=Special:UserRights&user=" + (wgNamespaceNumber == -1 ? document.title.split("User contributions for ")[1].split(" -")[0] : wgTitle), "userrights", "ca-userrights");
}
});