Utente:Alex brollo/Split.js
Aspetto
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)
- Edge: tieni premuto il tasto Ctrl e fai clic su Aggiorna, oppure premi Ctrl-F5.
(function() {
function spl() {
var testo=$("#wpTextbox1").val();
var top="";
var testoSplit="";
if (testo.indexOf("==[[")==-1) {
alert("La pagina non contiene codici split");
return "";
}
testoSplit=testo.split(/==\[\[(.+)\]\]==\n/);
if (testoSplit[0].indexOf("==[[Pagina")===-1) {
top=testoSplit[0];
testoSplit=testoSplit.slice(1);
$("#wpTextbox1").val(top);
}
return testoSplit;
}
// splits wiki code into header,body,footer
function splitPagina(tpp) {
var testo = ["", "", ""];
testo[0] = tpp.substring(0, tpp.indexOf("</noinclude>") + 12);
testo[2] = tpp.substring(tpp.lastIndexOf("<noinclude>"));
testo[1] = tpp.substring(testo[0].length, tpp.length - testo[2].length);
return testo;
}
// rebuilds a nsPage page from header, body, footer
// using defaults for header and footer if not specified into parameters
function pageBuild(body,header,footer) {
if (header===undefined) header='<noinclude><pagequality level="1" user="#USER#" /></noinclude>'.replace("#USER#",mw.config.get("wgUserName"));
if (footer===undefined) footer='<noinclude></noinclude>';
return header+body+footer;
}
function pageSave(pageName,wikicode) {
new mw.Api().postWithToken( 'edit', {
action: 'edit',
title: pageName,
summary:"Modifica pagina via Split.js",
text: wikicode,
bot: 1
}).done(function( data ) {
if ( data && data.edit && data.edit.result !== 'Success' ) {
alert("Errore nel salvataggio della pagina");
} else {
log+=(pageName+"\n");
$("#wpTextbox1").val(log);
}
});
}
mw.forcedSplit=function() {
var lista=spl();
if (lista.length>1) {
var log="";
for (i=0;i<lista.length; i+=2) {
pageSave(lista[i],pageBuild(lista[i+1]));
}
}
};
if (mw.config.get("wgAction")==="edit"||mw.config.get("wgAction")==="submit" )
{
$split=$("#ca-talk").clone();
$split.removeClass().attr("id","ca-split").html('<span><a href="#" title="Split forzato in edit">split!!</a></span>');
$split.insertAfter($("#ca-talk"));
$split.click(function(){mw.forcedSplit();});
}
}(mw,$));