MediaWiki:Gadget-nav-requisiti.js
Questa pagina definisce alcuni parametri di aspetto e comportamento generale di tutte le pagine. Per personalizzarli vedi Aiuto:Stile utente.
Nota: dopo aver salvato è necessario pulire la cache del proprio browser per vedere i cambiamenti (per le pagine globali è comunque necessario attendere qualche minuto). Per Mozilla / Firefox / Safari: fare clic su Ricarica tenendo premuto il tasto delle maiuscole, oppure premere Ctrl-F5 o Ctrl-R (Command-R su Mac); per Chrome: premere Ctrl-Shift-R (Command-Shift-R su un Mac); per Konqueror: premere il pulsante Ricarica o il tasto F5; per Opera può essere necessario svuotare completamente la cache dal menù Strumenti → Preferenze; per Internet Explorer: mantenere premuto il tasto Ctrl mentre si preme il pulsante Aggiorna o premere Ctrl-F5.
/**
* Gadget-nav-requisiti.js
* Aggiunge un link "Verifica requisiti di voto" con il quale è possibile visualizzare
* le informazioni su data di registrazione, primo, 50esimo e 500esimo edit di un utente.
*
* Questa è una riscrittura da zero a partire da:
* http://it.wikipedia.org/w/index.php?title=Wikipedia:Monobook.js/Requisiti.js&oldid=38597188
*
* @author [[Utente:Rotpunkt]]
*/
/*global alert: false, prompt: false, document: false, mediaWiki: false, jQuery: false */
(function (mw, $) {
'use strict';
// Ritorna la data di registrazione dell'utente
function getRegistration(user, registrationHandler) {
$.ajax({
url: mw.util.wikiScript('api'),
data: {
action: 'query',
list: 'users',
ususers: user,
usprop: 'registration',
format: 'json'
},
dataType: 'json'
})
.done(function (data) {
if (data.query.users[0].registration) {
registrationHandler(data.query.users[0].registration);
} else {
alert('L\'utente ' + user + ' non è registrato');
}
});
}
// Ritorna i contributi dell'utente in formato JSON
function getUserContribs(user, start, contribsHandler) {
$.ajax({
url: mw.util.wikiScript('api'),
data: {
action: 'query',
list: 'usercontribs',
ucuser: user,
ucstart: start,
ucdir: 'newer',
uclimit: '500',
format: 'json'
},
dataType: 'json'
})
.done(function (data) {
contribsHandler(data.query.usercontribs);
});
}
// Parsifica un timestamp in date (1 gen 2001) e time (01:23)
function parseTimestamp(timestamp) {
var date, hours, minutes, months;
date = new Date(timestamp);
hours = date.getHours();
minutes = date.getMinutes();
months = [
'gen', 'feb', 'mar', 'apr', 'mag', 'giu',
'lug', 'ago', 'set', 'ott', 'nov', 'dic'
];
return date.getDate() + ' ' + months[date.getMonth()] + ' ' +
date.getFullYear() + ' alle ' +
(hours < 10 ? '0' + hours : hours) + ':' +
(minutes < 10 ? '0' + minutes : minutes);
}
function showInfo(user, registration, contribs) {
var info = 'Analisi requisiti di "' + user + '":\n\n',
totcontribs = 'l\'utente ha fatto solo ' + contribs.length + ' modifiche';
info += 'Registrazione: ' + parseTimestamp(registration) + '\n';
info += 'Prima modifica: ' + (contribs.length > 0 ? parseTimestamp(contribs[0].timestamp) : totcontribs) + '\n';
info += '50esima modifica: ' + (contribs.length >= 50 ? parseTimestamp(contribs[49].timestamp) : totcontribs) + '\n';
info += '500esima modifica: ' + (contribs.length >= 500 ? parseTimestamp(contribs[499].timestamp) : totcontribs);
alert(info);
}
$(document).ready(function () {
var portletLink = mw.util.addPortletLink('p-navigation', '#', 'Verifica requisiti di voto');
$(portletLink).click(function (event) {
event.preventDefault();
var user = prompt('Quale utente devi controllare?');
if (user !== null && user.trim().length > 0) {
getRegistration(user, function (registration) {
getUserContribs(user, registration, function (contribs) {
showInfo(user, registration, contribs);
});
});
}
});
});
}(mediaWiki, jQuery));