User:One01/common.js
Appearance
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.
/* User profile information box */
/* START User profile info */
$(function () {
if (mw.config.get('wgNamespaceNumber') !== 2) return;
var username = mw.config.get('wgRelevantUserName');
if (!username) return;
new mw.Api().get({
action: 'query',
list: 'users',
ususers: username,
usprop: 'groups|editcount|registration',
formatversion: 2
}).done(function (data) {
var user = data.query.users[0];
if (!user || user.missing) return;
var groups = user.groups || [];
var editCount = user.editcount;
var registration = user.registration;
// Convert MediaWiki's internal group names to English names.
var groupNames = {
'user': 'Users',
'autoconfirmed': 'Autoconfirmed users',
'confirmed': 'Confirmed users',
'emailconfirmed': 'Confirmed email',
'sysop': 'Administrators',
'bureaucrat': 'Bureaucrats',
'interface-admin': 'Interface administrators',
'bot': 'Bots',
'checkuser': 'CheckUsers',
'suppress': 'Oversighters',
'import': 'Importers',
'transwiki': 'Transwiki importers',
'accountcreator': 'Account creators',
'templateeditor': 'Template editors',
'rollbacker': 'Rollbackers',
'patroller': 'Patrollers',
'autoreviewer': 'Autoreviewers'
};
var readableGroups = groups
.filter(function (group) {
return group !== '*';
})
.map(function (group) {
return groupNames[group] || group;
});
// Format registration timestamp as:
// MMM DD, YYYY, HH:MM AM UTC
var registrationText = 'Unknown';
if (registration) {
var date = new Date(registration);
registrationText = date.toLocaleString('en-US', {
month: 'short',
day: 'numeric',
year: 'numeric',
hour: 'numeric',
minute: '2-digit',
hour12: true,
timeZone: 'UTC'
}) + ' UTC';
}
var $box = $('<div>', {
css: {
padding: '10px',
margin: '10px 0',
border: '2px solid black',
background: '#eee'
}
});
$('<p>').text(
'Groups: ' + readableGroups.join(', ')
).appendTo($box);
$('<p>').text(
'Number of edits: ' + Number(editCount).toLocaleString()
).appendTo($box);
$('<p>').text(
'Registration time: ' + registrationText
).appendTo($box);
$box.prependTo('#mw-content-text');
});
});
/* END User profile info */
/* START Purge button */
mw.loader.using( 'mediawiki.util' ).then( function () {
// Only show the link to logged-in users.
if ( mw.config.get( 'wgUserName' ) === null ) {
return;
}
// Don't add it twice.
if ( document.getElementById( 't-purge' ) ) {
return;
}
mw.util.addPortletLink(
'p-cactions',
mw.util.getUrl( null, { action: 'purge' } ),
'Purge',
't-purge',
'Purge the server cache of this page'
);
} );
/* END Purge button */