MediaWiki:InactiveUsers/code.js: Difference between revisions

From Redemption Wiki
Jump to navigation Jump to search
>HexUseMe
(Created page with "/** * InactiveUsers * * documentation at: https://dev.wikia.com/wiki/InactiveUsers * © Peter Coester, 2012 * * continued as UserTags: https://dev.wikia.com/wiki/UserTa...")
 
>HexUseMe
(Replaced content with "module = $.extend({ text: 'inactive', gone: [], months: 1 }, module);")
Line 1: Line 1:
/**
module = $.extend({
* InactiveUsers
*
* documentation at: https://dev.wikia.com/wiki/InactiveUsers
* © Peter Coester, 2012
*
* continued as UserTags: https://dev.wikia.com/wiki/UserTags
*/
/*jshint curly:false laxbreak:true es5:true jquery:true */
(function (module, $, mw) {
    'use strict';
    if (!$('#UserProfileMasthead').exists() || window.InactiveUsersLoaded) {
        return;
    }
    window.InactiveUsersLoaded = true;
    // Polyfill for ECMAScript 5 function (so it works in older browsers)
    if (!Date.prototype.toISOString) Date.prototype.toISOString = function() {
        function pad(s) {
            return (s += '').length < 2 ? '0' + s : s;
        }
        return this.getUTCFullYear()
            + '-' + pad(this.getUTCMonth() + 1)
            + '-' + pad(this.getUTCDate())
            + 'T' + pad(this.getUTCHours())
            + ':' + pad(this.getUTCMinutes())
            + ':' + pad(this.getUTCSeconds())
            + '.' + (this.getUTCMilliseconds() / 1000).toFixed(3).substr(-3)
            + 'Z';
    };
    function isoDateNDaysAgo(days) {
        return new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();
    }
    function labelAsInactive() {
        var $container = $('#UserProfileMasthead hgroup'),
            css = $container.find('.tag').length ? {
                marginLeft: '10px'
            } : {};
        $container.append(
            $('<span>', {
                'class': 'tag inactive-user',
                'css': css,
                text: module.text
            })
        );
        mw.hook('dev.inactiveusers').fire();
    }
    module = $.extend({
         text: 'inactive',
         text: 'inactive',
         gone: [],
         gone: [],
         months: 1
         months: 1
     }, module);
     }, module);
    var user = $('#UserProfileMasthead h1[itemprop="name"]').text();
    if (module.gone.indexOf(user) === -1) {
        mw.loader.using('mediawiki.api').then(function() {
            new mw.Api().get({
                action: 'query',
                list: 'usercontribs',
                uclimit: 1,
                ucprop: 'title|timestamp',
                ucuser: user,
                ucstart: isoDateNDaysAgo(0),
                ucend: isoDateNDaysAgo(30 * Math.max(parseInt(module.months, 10) || 1, 1))
            }).done(function(result) {
                if (
                    result &&
                    result.query &&
                    result.query.usercontribs &&
                    !result.query.usercontribs.length
                ) {
                    labelAsInactive();
                }
            });
        });
    } else {
        labelAsInactive();
    }
} (window.InactiveUsers = window.InactiveUsers || {}, jQuery, mediaWiki));

Revision as of 15:38, 24 September 2018

module = $.extend({
        text: 'inactive',
        gone: [],
        months: 1
    }, module);