(oh fine) |
No edit summary |
||
Line 91: | Line 91: | ||
var groups = data.query.users[0].groups; |
var groups = data.query.users[0].groups; |
||
var $content = $("<div id=\"userGroups\">"); |
var $content = $("<div id=\"userGroups\">"); |
||
⚫ | |||
− | |||
⚫ | |||
⚫ | |||
if (!groups) { |
if (!groups) { |
||
$('#userGroupsModalText').replace('currently a member of the following groups: <br />', 'currently not a member of any user group.'); |
$('#userGroupsModalText').replace('currently a member of the following groups: <br />', 'currently not a member of any user group.'); |
||
Line 97: | Line 99: | ||
return; |
return; |
||
} |
} |
||
− | |||
⚫ | |||
⚫ | |||
⚫ | |||
− | |||
// stringify and add content |
// stringify and add content |
||
var $ul = $('<ul>'); |
var $ul = $('<ul>'); |
Revision as of 01:09, 9 September 2020
/*
* @module StaffBoxButton
* @description Open a list of user's rights when "Verify" is
* clicked in {{AdminBox}} or {{ContentModBox}}
* @author Americhino
*/
/* (function ($, mw) {
"use strict"; */
$('#StaffBoxButton').attr('title', 'Verify this user\'s rights');
$('#StaffBoxButton').click(openUserRightsLogs);
function openUserRightsLogs() {
if (mw.libs.QDmodal) {
// if loaded
loadGroups();
showGroups();
function loadGroups() {
var groupsModal = new mw.libs.QDmodal("usergroups-modal");
var $user = mw.config.get('wgTitle').split('/');
var user = $user[0];
groupsModal.show({
content: "<div id=\"userGroupsModalText\"><strong>" + user + "</strong> is currently a member of the following groups: <br /></div>",
title: "Verify Rights: "+ user,
hook: "userGroupsModal"
});
}
function showGroups() {
var $user = mw.config.get('wgTitle').split('/');
var user = $user[0];
$.get(mw.util.wikiScript("api"), {
action: "query",
format: "json",
list: "users",
ususers: user,
usprop: "groups"
}).done(function(data) {
var groups = data.query.users[0].groups;
var $content = $("<div id=\"userGroups\">");
if (!groups) {
$('#userGroupsModalText').replace('currently a member of the following groups: <br />', 'currently not a member of any user group.');
// likely a not-existing or invalid username
return;
}
// remove '*' and 'user' groups
groups.splice(groups.indexOf("*"), 1);
groups.splice(groups.indexOf("user"), 1);
// stringify
var $ul = $('<ul>');
var $apiButton = '<a id="userGroupsApi" class="wds-button wds-is-secondary" href="/api.php?action=query&list=users&ususers=' + user + '&usprop=groups"> API</a>';
var $logsButton = '<a id="userGroupsLogs" class="wds-button" href="/wiki/Special:Log/rights?type=rights&user=&page=' + user + '&year=&month=-1">Logs</a>';
$content
.attr('id', 'userGroups');
groups.forEach(function(group) {
$ul.append($('<li>', {text: group}));
});
$content.append($ul);
$("#userGroupsModalText").append($content);
$('.qdmodal > footer').append($logsButton, $apiButton);
});
mw.util.addCSS('#userGroups ul li { list-style-type: disc; margin-left: 25px; } #userGroupsApi { margin-right: 5px; } #userGroupsApi, #userGroupsLogs { padding: 4px 18px } #userGroupsApi { border-color: #f60; color: #f60 } #userGroupsLogs { background-color: #f60; border-color:#f60 }');
}
} else {
// not loaded, does exactly the same thing
$.ajax({
cache: true,
dataType: "script",
url: "//dev.wikia.com/load.php?mode=articles&only=scripts&articles=MediaWiki:QDmodal.js"
}).done(loadGroups, showGroups);
function loadGroups() {
var groupsModal = new mw.libs.QDmodal("usergroups-modal");
var $user = mw.config.get('wgTitle').split('/');
var user = $user[0];
groupsModal.show({
content: "<div id=\"userGroupsModalText\"><strong>" + user + "</strong> is currently a member of the following groups: <br /></div>",
title: "Verify Rights: "+ user,
hook: "userGroupsModal"
});
}
function showGroups() {
var $user = mw.config.get('wgTitle').split('/');
var user = $user[0];
$.get(mw.util.wikiScript("api"), {
action: "query",
format: "json",
list: "users",
ususers: user,
usprop: "groups"
}).done(function(data) {
var groups = data.query.users[0].groups;
var $content = $("<div id=\"userGroups\">");
// remove '*' and 'user' groups
groups.splice(groups.indexOf("*"), 1);
groups.splice(groups.indexOf("user"), 1);
if (!groups) {
$('#userGroupsModalText').replace('currently a member of the following groups: <br />', 'currently not a member of any user group.');
// likely a not-existing or invalid username
return;
}
// stringify and add content
var $ul = $('<ul>');
var $apiButton = '<a id="userGroupsApi" class="wds-button wds-is-secondary" href="/api.php?action=query&list=users&ususers=' + user + '&usprop=groups"> API</a>';
var $logsButton = '<a id="userGroupsLogs" class="wds-button" href="/wiki/Special:Log/rights?type=rights&user=&page=' + user + '&year=&month=-1">Logs</a>';
$content
.attr('id', 'userGroups');
groups.forEach(function(group) {
$ul.append($('<li>', {text: group}));
});
$content.append($ul);
$("#userGroupsModalText").append($content);
$('.qdmodal > footer').append($logsButton, $apiButton);
});
mw.util.addCSS('#userGroups ul li { list-style-type: disc; margin-left: 25px; } #userGroupsApi { margin-right: 5px; } #userGroupsApi, #userGroupsLogs { padding: 4px 18px } #userGroupsApi { border-color: #f60; color: #f60 } #userGroupsLogs { background-color: #f60; border-color:#f60 }');
}
}
} /*
}); */