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)
- Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
- Opera: Press Ctrl-F5.
/**
* InactiveUsers
*
* documentation at: https://dev.fandom.com/wiki/InactiveUsers
* © Peter Coester, 2012
*
* continued as UserTags: https://dev.fandom.com/wiki/UserTags
*/
(function ($, mw) {
'use strict';
if (!mw.config.get('profileUserName') || window.InactiveUsersLoaded) {
return;
}
window.InactiveUsersLoaded = true;
var module = $.extend({
gone: [],
months: 3
}, window.InactiveUsers);
var preloads = 3;
function isoDateNDaysAgo(days) {
return new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString();
}
function init(i18n) {
var $container = $('#userProfileApp .user-identity-header__attributes');
var user = mw.config.get('profileUserName');
new mw.Api().get({
action: 'query',
list: 'usercontribs|users',
uclimit: 1,
ucprop: 'title|timestamp',
ucuser: user,
ucstart: isoDateNDaysAgo(0),
ucend: isoDateNDaysAgo(30 * Math.max(Number(module.months) || 1, 1)),
ususers: user,
usprop: 'gender',
formatversion: 2
}).done(function(data) {
if (
!data.batchcomplete ||
// The user doesn't exist
data.query.users[0].missing ||
// The user has contributed
data.query.usercontribs.length ||
// or is marked as gone
module.gone.indexOf(user) !== -1
) {
return;
}
var gender = data.query.users[0].gender || 'unknown';
var text = typeof module.text === 'string' ?
module.text :
typeof module.text === 'object' ?
typeof module.text[gender] === 'string' ?
module.text[gender] :
module.text.unknown :
i18n.msg('inactive-' + gender).plain();
$container.append(
$('<span>', {
'class': 'tag user-identity-header__tag inactive-user',
'text': text
})
);
});
}
function preload() {
if (--preloads > 0) {
return;
}
window.dev.i18n.loadMessages('InactiveUsers').done(init);
}
var checkExist = setInterval(function () {
if ($('#userProfileApp').length) {
clearInterval(checkExist);
preload();
}
}, 500);
mw.loader.using('mediawiki.api').then(preload);
mw.hook('dev.i18n').add(preload);
importArticle({
article: 'u:dev:MediaWiki:I18n-js/code.js'
});
}(window.jQuery, window.mediaWiki));