MediaWiki:Common.js
MediaWiki interface page
More actions
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */
/* --- Auto-Generate MangaDex Role Badges --- */
mw.loader.using(['mediawiki.api']).then(function () {
var targetUser = mw.config.get('wgRelevantUserName');
if (!targetUser) return;
var api = new mw.Api();
api.get({
action: 'query',
list: 'users',
ususers: targetUser,
usprop: 'groups'
}).done(function (data) {
var users = data.query.users;
if (!users || !users[0] || !users[0].groups) return;
var groups = users[0].groups;
var roleMap = {
'sysop': { text: 'Wiki Admin', class: 'md-role-admin' },
'wiki_editor': { text: 'Wiki Editor', class: 'md-role-wiki-editor' },
'admin': { text: 'Admin', class: 'md-role-admin' },
'developer': { text: 'Developer', class: 'md-role-developer' },
'global_moderator': { text: 'Global Moderator', class: 'md-role-global-moderator' },
'forum_moderator': { text: 'Forum Moderator', class: 'md-role-forum-moderator' },
'public_relations': { text: 'Public Relations', class: 'md-role-public-relations' },
'designer': { text: 'Designer', class: 'md-role-designer' },
'staff': { text: 'Staff', class: 'md-role-staff' },
'knights_of_dex': { text: 'Knights of Dex', class: 'md-role-knights-of-dex' },
'contributor': { text: 'Contributor', class: 'md-role-contributor' },
'power_uploader': { text: 'Power Uploader', class: 'md-role-power' },
'group_leader': { text: 'Group Leader', class: 'md-role-leader' }
};
var $badgeContainer = $('<div>').css({ 'margin-bottom': '1.5rem', 'margin-top': '-0.5rem' });
var hasBadges = false;
groups.forEach(function(group) {
if (roleMap[group]) {
var $badge = $('<span>')
.addClass('md-role-badge ' + roleMap[group].class)
.text(roleMap[group].text);
$badgeContainer.append($badge);
hasBadges = true;
}
});
if (hasBadges) {
$('#bodyContent').prepend($badgeContainer);
}
});
});