MediaWiki:Gadget-aggregaContributi.js
Nota: dopo aver pubblicato, potrebbe essere necessario pulire la cache del proprio browser per vedere i cambiamenti.
- Firefox / Safari: tieni premuto il tasto delle maiuscole Shift e fai clic su Ricarica, oppure premi Ctrl-F5 o Ctrl-R (⌘-R su Mac)
- Google Chrome: premi Ctrl-Shift-R (⌘-Shift-R su un Mac)
- Internet Explorer / Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5
- Opera: premi Ctrl-F5.
$(function() {
var username = mw.config.get('wgUserName');
loadContribs = function(from, array) {
console.log("Loading pages from " + from);
var params = {
action: 'query',
list: 'usercontribs',
ucuser: username,
uclimit: 5000,
ucnamespace: 108,
format: 'json',
array: array
};
if (from)
params.uccontinue = from;
var api = new mw.Api();
api.post(params).done(function (data, textStatus, jqXHR) {
array = this.array;
$.each(data.query.usercontribs, function(index, element) {
array.push(element.title);
});
$('#titoliCount').html(array.length);
if (data['continue'])
loadContribs(data['continue'].uccontinue);
else {
$('.aggrega-contributi-box-main .loader').html('- terminato.').removeClass('loader');
}
map = {};
for (i = 0; i < array.length; i++) {
titolo = array[i].replace('Pagina:', '');
if (titolo.indexOf('/') != -1)
titolo = titolo.substring(0, titolo.lastIndexOf('/'));
if (!map.hasOwnProperty(titolo))
map[titolo] = 1;
map[titolo] = map[titolo] + 1;
}
$('.aggrega-contributi-box-main ol').empty();
$.each(map, function(index, count) {
if (count >= 10) {
var link = '<a target="_new" href="/wiki/Indice:' + index + '">' + index + '</a>';
$('.aggrega-contributi-box-main ol').append('<li>' + link + ' (' + count + ')</li>');
}
});
});
};
showAggregaContributiMenu = function() {
mw.util.addPortletLink(
'p-tb',
'#',
'Contributi aggregati',
't-aggregaContributi',
'Mostra in forma aggregata (per libro) i contributi di questo utente'
);
};
var pagename = mw.config.get('wgPageName');
if (mw.config.get('wgCanonicalNamespace') == 'User') {
username = pagename.replace('Utente:', '');
showAggregaContributiMenu();
} else if (pagename.indexOf('Speciale:Contributi') != -1) {
username = pagename.replace('Speciale:Contributi/', '');
showAggregaContributiMenu();
}
$('#t-aggregaContributi').click(function(e) {
e.preventDefault();
array = [];
$('.aggrega-contributi-box').remove();
var box = '<div class="box aggrega-contributi-box">'
+ '<div class="box-title">Contributi utente aggregati<span class="icon-close"></span></div>'
+ '<div class="box-main aggrega-contributi-box-main"></div></div>';
$("body").append(box);
$('.aggrega-contributi-box').draggable();
$('.aggrega-contributi-box').draggable('option', 'cancel', '.box-main');
$('.aggrega-contributi-box-main').append('<p>Caricamento titoli: <span id="titoliCount">0</span> <span class="loader"></span>'
+ '<br><small>Sono elencati gli indici con almeno 10 contributi di questo utente nel namespace Pagina, dal più recente al più vecchio.</small></p>'
+ '<ol></ol>');
$('.aggrega-contributi-box .icon-close').click(function() {
$('.aggrega-contributi-box').remove();
});
loadContribs(null, array);
});
});