Utente:Ricordisamoa/Accessori.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.
/* <nowiki>
* Migrazione degli script dalla variabile "toLoad" del monobook.js alle preferenze sugli accessori
* @author [[Utente:Ricordisamoa]]
*/
$(function(){
var notif = function(msg){
mw.notify($('<b>'+msg+'</b>'),{autoHide:false});
},
warn = function(msg){
mw.notify($('<b class="error">Accessori.js:<br>'+msg+'</b>'),{autoHide:false});
};
if(mw.config.get('wgNamespaceNumber') != 2 || new RegExp(mw.config.get('wgUserName')+'\\/.+\\.js$').test(mw.config.get('wgTitle')) == false){
warn('Non sei sulla pagina giusta');
return;
}
if(typeof toLoad != 'string'){
warn('Nessun "toLoad" rilevato');
return;
}
var moduli = toLoad.trim().split(/ +/);
if(moduli.length == 0){
warn('Nessun modulo rilevato in "toLoad"');
return;
}
$(mw.util.addPortletLink('p-tb', '#', 'Abilita accessori', 'new-gadgets', 'Sostituisci il vecchio monobook con gli accessori corrispondenti'))
.click(function(event){
event.preventDefault();
var api = new mw.Api();
api.get({
action: 'query',
format: 'json',
titles: 'Utente:Rotpunkt/Gadgets',
prop: 'revisions',
rvlimit: 1,
rvprop: 'content'
})
.done(function(d){
d = d.query.pages;
if(typeof d == 'undefined' || Object.keys(d)[0] == '-1') return;
d=d[Object.keys(d)[0]];
if(typeof d.revisions == 'undefined' || d.revisions.length != 1) return;
d=d.revisions[0];
if(typeof d['*'] == 'undefined') return;
d=d['*'];
var regex = /\n\|\s*(\w+)\s*\|\|\s*[^\n]*\(\[\[\s*[Mm]ediaWiki\:\s*[Gg](adget\-[^\[\]\|]+)\s*\]\]\)\s*\n/g,
regex2 = new RegExp(regex.source,''),
loads = {},
impost = [],
skipped = [];
$.each(d.match(regex)||[], function(i,e){
var m=e.match(regex2);
if(m){
loads[m[1]] = 'g'+m[2];
}
});
$.each(moduli, function(i,e){
if(typeof loads[e] != 'undefined'){
if(mw.user.options.get(loads[e]) == '1'){
skipped.push(loads[e]);
notif('Il gadget '+loads[e].replace(/^[Gg]adget\-/,'')+' è già abilitato nelle tue preferenze');
}
else{
impost.push(loads[e]+'=1');
}
}
});
if(moduli.length != (skipped.length+impost.length)){
warn('Trovati '+moduli.length+' script da caricare ma solo '+(skipped.length+impost.length)+' hanno un accessorio equivalente');
return;
}
var cb=function(){
api.get({
action: 'query',
format: 'json',
titles: mw.config.get('wgPageName'),
prop: 'revisions',
rvlimit: 1,
rvprop: 'content'
})
.done(function(d){
d = d.query.pages;
if(typeof d == 'undefined' || Object.keys(d)[0] == '-1') return;
d=d[Object.keys(d)[0]];
if(typeof d.revisions == 'undefined' || d.revisions.length != 1) return;
d=d.revisions[0];
if(typeof d['*'] == 'undefined') return;
d=d['*'];
var rxp = new RegExp('(^|\\n)\\s*(var\\s+)toLoad\\s*\\=\\s*[\\"\\\']\\s*'+moduli.join('\\s+')+'\\s*[\\"\\\']\\s*\\;(\\n|$)'),
txt = d.replace(rxp,'');
if(txt != d){
api.post({
action: 'edit',
format: 'json',
title: mw.config.get('wgPageName'),
text: txt,
summary: '[[Utente:Ricordisamoa/Accessori.js|Accessori.js]]: rimozione variabile "toLoad"',
nocreate: 1,
token: mw.user.tokens.get('editToken')
})
.done(function(data){
if(data && data.error && data.error.info) warn('Errore durante il salvataggio di "'+mw.config.get('wgPageName')+'":<br>'+data.error.info);
else{
notif('Pagina "'+mw.config.get('wgPageName')+'" salvata.<br>Attendere il ricaricamento della pagina e controllare eventuali errori.');
setTimeout(function(){
window.location.reload();
},3000);
}
})
.fail(function(){
warn('Errore durante il salvataggio di "'+mw.config.get('wgPageName')+'"');
});
}
else warn('Non è stato possibile rimuovere automaticamente "toLoad" da "'+mw.config.get('wgPageName')+'". Rimuoverlo manualmente.');
});
};
if(impost.length == 0){
notif('I gadget da caricare sono già abilitati.<br>Attendere la rimozione automatica di "toLoad".');
cb();
}
else{
api.getToken('options')
.done(function(token){
if(typeof token == 'undefined'){
warn('Errore durante la richiesta del token per le preferenze');
return;
}
api.post({
action: 'options',
format: 'json',
change: impost.join('|'),
token: token
})
.done(function(data){
if(data && data.error && data.error.info) warn('Errore durante l\'impostazione delle preferenze: ' + data.error.info);
else{
notif('Preferenze impostate.<br>Attendere la rimozione automatica di "toLoad".');
cb();
}
})
.fail(function(){
warn('Impossibile impostare le preferenze');
});
})
.fail(function(){
warn('Impossibile ottenere il token per le preferenze');
});
}
});
});
});