Jump to content

User:One01/common.js

From Aurora 4x Wiki

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 */