MediaWiki:Gadget-OnlineAdmins.js: Difference between revisions

From Test Wiki
Content deleted Content added
No edit summary
No edit summary
Line 1: Line 1:
// Localized en version
// Localized en version
// Create portlet link
// Create portlet link
function getlistusers() {
var portletLinkOnline = mw.util.addPortletLink(
'p-personal',
'#',
'Find Admins',
't-onlineadmin',
'Seek help from admins.',
'',
'#pt-userpage'
);
var rcstart, rcend, time;
var users = [];
var admins = [], rollbackers = [], patrollers = [];
var api = new mw.Api();

// Bind click handler
$(portletLinkOnline).click(function(e) {
$(portletLinkOnline).click(function(e) {
e.preventDefault();
e.preventDefault();
Line 57: Line 43:
// Removing Duplicate Usernames
// Removing Duplicate Usernames
users = $.unique(users.sort());
users = $.unique(users.sort());
});


var portletLinkOnline = mw.util.addPortletLink(
'p-personal',
'#',
'Find Admins',
't-onlineadmin',
'Seek help from admins.',
'',
'#pt-userpage'
);
var rcstart, rcend, time;
var users = [];
var admins = [], rollbackers = [], patrollers = [];
var api = new mw.Api();
getlistusers();
var promises = [];
var promises = [];
var mark = function(data) {
var mark = function(data) {
Line 105: Line 106:
});
});
});
});
});
}
// Create portlet link
// Create portlet link
var portletLinkOnline = mw.util.addPortletLink(
var portletLinkOnline = mw.util.addPortletLink(
Line 128: Line 129:
var usersExt = [];
var usersExt = [];
admins = [];
admins = [];
rollbackers = [];
patrollers = [];
patrollers = [];
getlistusers();

//Recent edit within 15 minutes
time = new Date();
rcstart = time.toISOString();
time.setMinutes(time.getMinutes() - 15);
rcend = time.toISOString();

//API:RecentChanges
api.get({
format: 'json',
action: 'query',
list: 'recentchanges',
rcprop: 'user',
rcstart: rcstart,
rcend: rcend,
rcshow: '!bot|!anon',
rclimit: 500
}).done(function(data) {
$.each(data.query.recentchanges, function(i, item) {
users[i] = item.user;
});
api.get({
format: 'json',
action: 'query',
list: 'logevents',
leprop: 'user',
lestart: rcstart,
leend: rcend,
lelimit: 500
}).done(function(data) {
$.each(data.query.logevents, function(i, item) {
usersExt[i] = item.user;
});
Array.prototype.push.apply(users, usersExt);
users = $.unique(users.sort());
var promises = [];
var promises = [];
var mark = function(data) {
var mark = function(data) {
Line 211: Line 177:
mw.notify('Error 404');
mw.notify('Error 404');
});
});
});
});
});
});
var portletLinkOnline = mw.util.addPortletLink(
var portletLinkOnline = mw.util.addPortletLink(
Line 227: Line 191:
var rollbackers = [];
var rollbackers = [];
var api = new mw.Api();
var api = new mw.Api();
getlistusers();
$(portletLinkOnline).click(function(e) {
e.preventDefault();
users = [];
var usersExt = [];
rollbackers = [];
time = new Date();
rcstart = time.toISOString();
time.setMinutes(time.getMinutes() - 15);
rcend = time.toISOString();
api.get({
format: 'json',
action: 'query',
list: 'recentchanges',
rcprop: 'user',
rcstart: rcstart,
rcend: rcend,
rcshow: '!bot|!anon',
rclimit: 500
}).done(function(data) {
$.each(data.query.recentchanges, function(i, item) {
users[i] = item.user;
});
api.get({
format: 'json',
action: 'query',
list: 'logevents',
leprop: 'user',
lestart: rcstart,
leend: rcend,
lelimit: 500
}).done(function(data) {
$.each(data.query.logevents, function(i, item) {
usersExt[i] = item.user;
});
Array.prototype.push.apply(users, usersExt);
users = $.unique(users.sort());
var promises = [];
var promises = [];
var mark = function(data) {
var mark = function(data) {
Line 340: Line 269:
time.setMinutes(time.getMinutes() - 15);
time.setMinutes(time.getMinutes() - 15);
rcend = time.toISOString();
rcend = time.toISOString();
getlistusers();

//API:RecentChanges
api.get({
format: 'json',
action: 'query',
list: 'recentchanges',
rcprop: 'user',
rcstart: rcstart,
rcend: rcend,
rcshow: '!bot|!anon',
rclimit: 500
}).done(function(data) {
$.each(data.query.recentchanges, function(i, item) {
users[i] = item.user;
});
api.get({
format: 'json',
action: 'query',
list: 'logevents',
leprop: 'user',
lestart: rcstart,
leend: rcend,
lelimit: 500
}).done(function(data) {
$.each(data.query.logevents, function(i, item) {
usersExt[i] = item.user;
});
Array.prototype.push.apply(users, usersExt);
users = $.unique(users.sort());
var promises = [];
var promises = [];
var mark = function(data) {
var mark = function(data) {