MediaWiki:Gadget-compilaSommario.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.
/**
* Vedi la guida alla pagina Aiuto:Gadget_CompilaSommario
*/
$(function() {
var versione = 'v. 1.4';
var alertIndiceSommario = false;
var counter = 0;
var alertCounter = 0;
var onSaveCheck = false;
var alertShown = false;
var pagelists;
var templateVi = [];
console.log('Compila sommario ' + versione);
legenda = '<div class="legenda">Usare le <b>frecce</b> per cambiare il livello.'
+ '<br>Indicare il <b>numero pagina del file djvu o pdf</b>, non quello stampato sulle pagine.'
+ '<br>Compilare prima il campo <b>Lista delle pagine</b>.'
+ '</div>';
leftMargin = $('#content').outerWidth(true) - $('#content').innerWidth() - 20;
boxWidth = leftMargin + $('.oo-ui-fieldLayout-header:first').width();
aggiungiRiga = function(livello, titolo, from) {
$('#compilaSommarioBox ul').append('<li class="livello' + livello + '"></li>');
li = $('#compilaSommarioBox ul li:last');
inputTitolo = $('<textarea class="titolo" rows="1" placeholder="Inserisci qui il titolo del capitolo o sezione"/>');
inputTitolo.on('input', function () {
$(this).css('height', 'auto');
$(this).css('height', this.scrollHeight + 'px');
});
if (titolo !== undefined)
inputTitolo.val(titolo);
inputFrom = $('<input type="text" class="numPag" />');
if (inputFrom !== undefined)
inputFrom.val(from);
if (!li.is(':first-child')) {
arrowLeft = $('<a href="#" class="arrowLeft" tabindex="-1" title="Porta al livello superiore">←</a>');
arrowRight = $('<a href="#" class="arrowRight" tabindex="-1" title="Porta al livello inferiore">→</a>');
li.append(arrowLeft);
li.append(arrowRight);
arrowLeft.click(function(e) {
e.preventDefault();
cambiaLivello($(this), false);
});
arrowRight.click(function(e) {
e.preventDefault();
cambiaLivello($(this), true);
});
}
li.append(inputTitolo);
li.append(inputFrom);
addNewLine = $('<a href="#" class="addNewLine" tabindex="-1" title="Inserisci nuova riga sotto di questa">⚹</a>');
li.append(addNewLine);
addNewLine.click(function(e) {
e.preventDefault();
var level = parseInt($(this).parent('li').attr('class').replace('livello', ''));
if (level == 1)
level = 2;
aggiungiRiga(level);
$(this).parent().after($('#compilaSommarioBox ul li:last'));
});
inputTitolo.keyup(function() {
titolo = $(this).val();
titolo = titolo.charAt(0).toUpperCase() + titolo.slice(1);
titolo = titolo.replace(/’/g, "'").replace(/^\s+/, '').replace(/[\r\n]+/g, ' ').replace(/ /, ' ').replace(/''/, "'");
$(this).val(titolo);
// quando l'ultima riga viene compilata, crea una riga nuova
li = $(this).parents('li');
if ($(this).val() !== '' && li.is(':last-child')) {
var level = parseInt(li.attr('class').replace('livello', ''));
aggiungiRiga(level);
}
});
inputFrom.keyup(function() {
$(this).val($(this).val().replace(/[^\d]/g, ''));
});
setLarghezza(li, livello);
inputTitolo.trigger('input');
};
setLarghezza = function(li, livello) {
li.find('.titolo').css('width', boxWidth-70 - (livello * 15));
};
getTitolo = function() {
titolo = $('#wpprpindex-Titolo').val();
if (titolo === '')
titolo = $('#wpprpindex-NomePagina').val();
return titolo;
};
getFrontespizio = function() {
num = $('#wpprpindex-Immagine').val();
if (num === '')
num = 1;
return num;
};
cambiaLivello = function(obj, inc) {
li = obj.parents('li');
livello = parseInt(li.attr('class').substr(-1)) + (inc ? 1 : -1);
if (livello > 0 && livello < 7) {
livelloSopra = parseInt(li.prev().attr('class').substr(-1));
diff = livello - livelloSopra;
// non si può mettere a più di un livello di distanza rispetto alla riga superiore
if (!inc || diff < 2) {
li.attr('class', 'livello' + livello);
setLarghezza(li, livello);
/*
li.find('.arrowRight, .arrowLeft').show();
if (diff == 1 || livello == 5) {
li.find('.arrowRight').hide();
} else if (diff == -1 || livello === 1) {
li.find('.arrowLeft').hide();
}
*/
}
}
li.find('textarea').focus();
};
scriviRiga = function(nome, titolo, from) {
testoPrec = $('#wpprpindex-Sommario').val();
if (testoPrec.length > 0)
testoPrec += '\n';
$('#wpprpindex-Sommario').val(
testoPrec + '{{Indice sommario|nome=' + nome + '|titolo=' + titolo + '|from=' + from + '|delta=' + calcolaDelta(from) + '}}'
);
$('#wpSummary').val('Gadget [[Aiuto:Gadget CompilaSommario|CompilaSommario]]');
};
initCompilaSommario = function() {
etichetta = $("[for='wpprpindex-Sommario']");
etichetta.append(' <a id="compilaSommarioBtn" href="#" class="btn blue" title="Compilazione semplificata tramite il gadget CompilaSommario">Compilazione assistita</a>');
etichetta.append('<p>Si consiglia di <b>compilare completamente il Sommario prima di creare le pagine in ns0</b>!</p>');
$('#compilaSommarioBtn').click(function(e) {
e.preventDefault();
if ($('#compilaSommarioBox').length > 0) {
$('#compilaSommarioCloseBtn').click();
} else {
$('#wpprpindex-Sommario').prop('readonly', true);
pagelists = parsePagelist();
etichetta.after('<div id="compilaSommarioBox"></div>');
box = $('#compilaSommarioBox');
box.append('<div id="compilaSommarioButtons"></div>');
buttons = $('#compilaSommarioButtons');
buttons.append('<div id="compilaSommarioVersion">' + versione + '</div>');
buttons.append('<div id="compilaSommarioGuida"><a href="/wiki/Aiuto:Gadget_CompilaSommario" target="_new" title="Guida (si apre in una nuova pagina)">Guida</a></div>');
box.append('<div id="compilaSommarioHeader">Titolo<div style="float: right">pag.</div></div>');
// sfruttiamo tutto lo spazio a sinistra
box.css('left', -leftMargin);
box.css('width', boxWidth);
buttons.append('<a id="compilaSommarioApplyBtn" href="#" class="btn blue" title="Applica le modifiche senza chiudere questo box">Applica</a>');
buttons.append('<a id="compilaSommarioConfirmBtn" href="#" class="btn blue" title="Conferma le modifiche e chiudi questo box">Conferma e chiudi</a>');
buttons.append('<a id="compilaSommarioCloseBtn" href="#" class="btn blue" title="Chiudi questo box senza applicare le modifiche">Annulla</a>');
box.append('<ul></ul>');
$('#compilaSommarioApplyBtn').click(function(e) {
e.preventDefault();
scriviIndiceSommario();
});
$('#compilaSommarioConfirmBtn').click(function(e) {
e.preventDefault();
$('#compilaSommarioApplyBtn').click();
$('#compilaSommarioCloseBtn').click();
});
$('#compilaSommarioCloseBtn').click(function(e) {
e.preventDefault();
$('#compilaSommarioBox').remove();
$('#wpprpindex-Sommario').prop('readonly', false);
});
$('#compilaSommarioBox').draggable({
create: function( event, ui ) {
$(this).css({
top: $(this).position().top,
left: $(this).position().left
});
}
});
box.append(legenda);
// se il Sommario è vuoto, inizia a scrivere la prima riga con il titolo dell'opera
if ($('#wpprpindex-Sommario').val() === '') {
nomePagina = $('#wpprpindex-NomePagina').val();
if (nomePagina === '') {
$('#compilaSommarioCloseBtn').click();
alert('Compila almeno il campo "Nome della pagina nel namespace principale", poi riapri la Compilazione assistita');
return;
}
scriviRiga(nomePagina, getTitolo(), getFrontespizio());
} else {
$('#compilaSommarioButtons').append('<div style="color: red"><b>Attenzione: verificare le modifiche prima di salvare!</b></div>');
}
parseIndiceSommario();
// preparo un po' di righe vuote a disposizione
for (i = 0; i < 3; i++)
aggiungiRiga(2);
}
});
};
function importVi() {
if (templateVi.length == 0)
alert('Non è stato trovato nessun template Vi. Trascrivi prima le pagine del sommario usando il template Vi, poi esegui nuovamente l\'import');
for (var i = 0; i < templateVi.length; i++) {
titolo = templateVi[i].sezione + ' ' + templateVi[i].titolo;
$($('#compilaSommarioBox ul').find('.titolo')[i + 1]).html(titolo);
// se manca il numero per questa pagina (es. perché c'è scritto "ivi"), riportalo da quella precedente
if (templateVi[i].pagina === '' && i > 0) {
templateVi[i].pagina = templateVi[i-1].pagina;
}
var paginaFile = trovaPaginaFile(templateVi[i].pagina);
$($('#compilaSommarioBox ul').find('.numPag')[i + 1]).val(paginaFile);
//console.log("import " + templateVi[i].titolo + ', pag. ' + paginaFile);
aggiungiRiga(2);
}
}
function loadSommarioPages(pageNum) {
console.log('load sommario page ' + pageNum);
$.ajax({
url: "/w/index.php?&title=Pagina:" + mw.config.get("wgTitle") + "/" + pageNum
}).always(function(response) {
$('.voceindice-riga', response).each(function(index) {
var vi = {};
vi.sezione = $(this).find('.voceindice-sezione').text();
vi.titolo = $(this).find('.voceindice-titolo').text();
vi.titolo = vi.titolo.substring(0, 1).toUpperCase() + vi.titolo.substring(1).toLowerCase();
vi.pagina = $(this).find('.voceindice-pagina').text().replace(/[^0-9]/g, '');
templateVi.push(vi);
});
if ($('.voceindice-riga', response).length) {
loadSommarioPages(pageNum + 1);
} else {
importVi();
}
});
}
function loadSommarioNs0() {
paginaNs0 = $('#wpprpindex-NomePagina').val();
console.log('load sommario from ns0 page: ' + paginaNs0);
$.ajax({
url: "/w/index.php?&title=" + paginaNs0
}).done(function(response) {
$('.tl-testo', response).each(function(index) {
titolo = $(this).find('i a').attr('title').replace(' (la pagina non esiste)', '');
livello = titolo.split('/').length;
titolo = titolo.substring(titolo.lastIndexOf('/') + 1);
console.log('add title: ' + titolo);
aggiungiRiga(livello, titolo);
});
aggiungiRiga(2);
});
}
parseIndiceSommario = function() {
sommarioText = $('#wpprpindex-Sommario').val();
nomebase = $('#wpprpindex-NomePagina').val();
// estrazione elementi Indice sommario e parsing
sommario = produciLista(sommarioText, "{"+"{Indice sommario", "}}", 1, "}}");
titoliCambiati = 0;
for (var i = 0; i < sommario.length; i += 1) {
riga = parseTemplate("Indice sommario", sommario[i])[0];
if (riga.nome == undefined) {
console.log("Errore nel parsing di Indice sommario: " + sommario[i]);
continue;
}
livello = (riga.nome.match(/\//g)||[]).length + 1;
// aggiungi riga con il titolo generale, se non c'era già
if (i === 0 && (livello > 1 || riga.nome != nomebase)) {
titolo = $('#wpprpindex-Titolo').val();
if (titolo === '')
titolo = nomebase;
aggiungiRiga(1, titolo, getFrontespizio());
}
titoloBefore = riga.titolo;
if (riga.nome == nomebase)
titolo = getTitolo();
else
titolo = riga.nome.substring(riga.nome.lastIndexOf('/')+1);
if (titoloBefore != titolo)
titoliCambiati++;
aggiungiRiga(livello, titolo, riga.from);
}
if (titoliCambiati > 0) {
msg = "Il gadget CompilaSommario modificherà un titolo per adeguarlo al nome della pagina. ";
if (titoliCambiati > 1) {
msg = "Il gadget CompilaSommario modificherà " + titoliCambiati + " titoli per adeguarli al nome della pagina. ";
}
msg += ' Controlla che le modifiche siano corrette prima di salvare.';
alert(msg);
}
$('#compilaSommarioCloseBtn').after('<a id="compilaSommarioImportBtn" href="#" class="btn blue" title="Importa dal sommario del libro (che devi avere già trascritto)">Importa il sommario del libro</a>');
$('#compilaSommarioImportBtn').click(function(e) {
e.preventDefault();
var ok = true;
if (sommario.length > 1) {
ok = confirm('L\'attuale sommario sarà cancellato e sovrascritto importandolo dalle pagine del libro. Confermi?');
if (ok) {
$('#compilaSommarioBox ul li:not(:first-child)').remove();
aggiungiRiga(2);
}
}
if (ok) {
paginaSommario = prompt("Da quale pagina comincia il sommario del libro? (inserire solo il numero)");
if (paginaSommario) {
$('#compilaSommarioImportBtn').attr('disabled',true);
templateVi = [];
loadSommarioPages(parseInt(paginaSommario));
}
}
});
$('#compilaSommarioImportBtn').after('<a id="compilaSommarioImportNs0Btn" href="#" class="btn blue" title="Importa dal sommario già presente nella pagina principale del testo in in ns0">Importa il sommario da ns0</a>');
$('#compilaSommarioImportNs0Btn').click(function(e) {
e.preventDefault();
var ok = true;
if (sommario.length > 1) {
ok = confirm('L\'attuale sommario sarà cancellato e sovrascritto importandolo dalla pagina ns0. Confermi?');
}
if (ok) {
$('#compilaSommarioBox ul li:not(:first-child)').remove();
$('#compilaSommarioImportNs0Btn').attr('disabled',true);
loadSommarioNs0();
}
});
};
scriviIndiceSommario = function() {
nomebase = $('#wpprpindex-NomePagina').val();
if (nomebase === '') {
$('#compilaSommarioCloseBtn').click();
alert('Compila almeno il campo "Nome della pagina nel namespace principale", poi riapri la Compilazione assistita');
return;
}
$('#wpprpindex-Sommario').val('');
alberoNomi = [nomebase, '', '', '', ''];
$('#compilaSommarioBox ul li').each(function(index) {
titolo = $(this).find('.titolo').val();
if (titolo !== '') {
nome = alberoNomi[0];
from = $(this).find('.numPag').val();
livello = $(this).attr('class').substr(-1);
if (/^\:[a-z]+\:/.test(titolo)) {
nome = titolo;
titolo = titolo.replace(/^\:[a-z]+\:/, '');
scriviRiga(nome, titolo, from);
} else {
if (livello > 1) {
alberoNomi[livello-1] = titolo;
nome = '';
for (i = 0; i < livello - 1; i++) {
nome += alberoNomi[i] + '/';
}
nome += titolo;
} else if (index > 0) {
alberoNomi[0] = titolo;
nome = titolo;
titolo = titolo.replace(/ \([A-Z][\s\S]+\)/, '');
}
scriviRiga(nome, titolo, from);
}
}
});
};
/** calcola partendo dal numero di pagina del file */
calcolaDelta = function(numPag) {
//console.log("calcola delta per pagina " + numPag);
if (!isNaN(numPag)) {
numPag = parseInt(numPag);
for (var i = 0; i < pagelists.length; i++) {
if (pagelists[i].from <= numPag && numPag <= pagelists[i].to) {
num = pagelists[i][numPag];
if (num === undefined)
return 0;
if (isNaN(num))
return num;
return numPag - num;
}
}
}
return 0;
};
/** calcola partendo dal numero stampato sulle pagine */
trovaPaginaFile = function(numPag) {
for (var i = 0; i < pagelists.length; i++) {
var pagelist = pagelists[i];
for (var j in pagelist) {
if (pagelist[j] == numPag || pagelist[j] == parseInt(numPag)) {
//console.log('la pagina ' + numPag + ' corrisponde alla pagina ' + j + ' del file');
return j;
}
}
}
return '';
};
parsePagelist = function() {
pagelistTags = $('#wpprpindex-Pagine').val().match(/<pagelist[\s\S]*?\/>/igm);
pagelists = [];
for (i = 0; i < pagelistTags.length; i++) {
pagelist = { from: 1, to: 10000 };
for (j = 1; j < 10000; j++)
pagelist[j] = j;
parts = Array.from(pagelistTags[i].replace('/>', '').matchAll(/(\S+)\=(\S+)/gm));
for (j = 0; j < parts.length; j++) {
par = parts[j][1];
val = parts[j][2].replace(/"/g, '');
if (par == 'from')
pagelist.from = parseInt(val);
else if (par == 'to')
pagelist.to = parseInt(val);
else if (!isNaN(val)) {
val = parseInt(val);
for (l = parseInt(par); l <= 10000; l++) {
pagelist[l] = val++;
}
}
else if (par.includes('to') && !val.match(/^(?:roman|highroman|folio|folioroman|foliohighroman)$/gm)) {
m = Array.from(par.matchAll(/(\d+)to(\d+)(\S*)/gm));
start = m[0][1];
end = m[0][2];
oddEven = m[0][3];
for (l = start; l <= end; l++) {
if (oddEven === '' || (oddEven == 'odd' && l % 2 == 1) || (oddEven == 'even' && l % 2 == 0))
pagelist[l] = val;
}
} else if (val == 'empty') {
// ignore
} else {
pagelist[par] = val;
}
}
for (j = 0; j < parts.length; j++) {
par = parts[j][1];
val = parts[j][2].replace(/"/g, '');
if (val == 'roman' || val == 'highroman') {
m = Array.from(par.matchAll(/(\d+)to(\d+)(\S*)/gm));
start = parseInt(m[0][1]);
end = parseInt(m[0][2]);
oddEven = m[0][3];
for (l = start; l <= end; l++) {
if (oddEven === '' || (oddEven == 'odd' && l % 2 == 1) || (oddEven == 'even' && l % 2 == 0)) {
pagelist[l] = romanize(pagelist[l]);
if (val == 'roman')
pagelist[l] = pagelist[l].toLowerCase();
}
}
} else if (val == 'folio' || val == 'folioroman' || val == 'foliohighroman') {
m = Array.from(par.matchAll(/(\d+)to(\d+)/gm));
start = parseInt(m[0][1]);
end = parseInt(m[0][2]);
n = pagelist[start];
folio = 'r';
for (l = start; l <= end; l++) {
pagelist[l] = n + folio;
folio = folio == 'r' ? 'v': 'r';
if (folio == 'r')
n++;
}
}
}
pagelists.push(pagelist);
}
return pagelists;
};
romanize = function (num) {
var lookup = {M:1000,CM:900,D:500,CD:400,C:100,XC:90,L:50,XL:40,X:10,IX:9,V:5,IV:4,I:1}, roman = '', i;
for (i in lookup) {
while (num >= lookup[i]) {
roman += i;
num -= lookup[i];
}
}
return roman;
};
showPagelistInfo = function() {
$("#wpprpindex-Pagine").parents('.oo-ui-fieldLayout-body').find('.oo-ui-fieldLayout-header .oo-ui-labelElement-label').first().append(
' <span id="pagelistInfo">'
+ '(<a target="_new" href="https://it.wikisource.org/wiki/Aiuto:Pagelist" title="Istruzioni all\'uso del tag pagelist (si apre in una nuova pagina)">Istruzioni</a>)'
+ '<p><b>NOTA</b>: il pagelist deve mostrare <b>tutte le pagine</b>, anche quelle bianche all\'inizio e alla fine del libro!'
+ '<br>I parametri "from" e "to" non vanno usati per nascondere le pagine!'
+ '<br>Eventuali note o altre informazioni non vanno qui, ma nel campo "Note / Altro".</p>'
+ '</span>');
$("#wpprpindex-Note").parents('.oo-ui-fieldLayout-body').find('.oo-ui-fieldLayout-header .oo-ui-labelElement-label').first().append(
'<br><b>Non mettere qui eventuali categorie</b>, usare il campo Categorie.'
);
};
templatizeSource = function() {
source = $('#wpprpindex-Fonte').val().replace("[//", "[http://");
if (
(source.indexOf("http") != -1) &&
(source.indexOf("archive.org") != -1 || source.indexOf("google") != -1 || source.indexOf("beic") != -1)
) {
source = source.replace(/\/?$/, "")
.replace("[//", "[http://")
.replace(/\/mode\/2up/, "")
.replace(/https?:\/\/archive\.org\/(details|download)\/(\S+)/, '{{IA|$2}}')
.replace(/#\S+/, "")
.replace(/https?:\/\/books\.google\.[a-z]+\/books\?id\=(\S+)/, '{{GB|$1}}')
.replace(/https?:\/\/www.google.it\/books\/edition\/(\S+)\/(\S+)\?(\S+)/, '{{GB|$2}}')
.replace(/https?:\/\/gutenberg\.beic\.it(\S+)pid=(\d+)&(\S+)/, '{{BEIC|$2}}')
.replace(/https?:\/\/gutenberg\.beic\.it(\S+)DOCCHOICE=(\d+)\.xml(\S+)/, '{{BEIC|$2}}')
.replace("[{{", "{{").replace(/\}\} .*?\]/, "}}")
.replace(/&\S+\}\}/, "}}");
$('#wpprpindex-Fonte').val(source);
}
};
loadSourceFromCommons = function() {
if ($('#wpprpindex-Fonte').val() == '') {
$.ajax({
url: "/w/index.php?&title=" + mw.config.get('wgPageName').replace('Indice:', 'File:')
}).done(function(response) {
content = $('#mw-content-text', response);
link = content.find('#fileinfotpl_src').next().find('a.external,a.extiw').first().attr('href');
if (link && link.indexOf('wikipedia') == -1 && link.indexOf('wikimedia') == -1 && link.indexOf('wikisource') == -1) {
if (link.startsWith('//'))
link = 'http:' + link;
hostname = $('<a>').prop('href', link).prop('hostname');
$('#wpprpindex-Fonte').val('[' + link + ' ' + hostname + ']');
}
});
}
};
loadSourceFromCommons();
// mostra un alert se ci sono errori in Indice Sommario
checkIndiceSommario = function(direct) {
if (direct || !alertIndiceSommario) {
var sommarioText = $('#wpprpindex-Sommario').val();
// estrazione elementi Indice sommario e parsing
var sommario = produciLista(sommarioText, "{"+"{Indice sommario", "}}", 1, "}}");
var list = [];
for (var j = 0; j < sommario.length; j++) {
var riga = parseTemplate("Indice sommario", sommario[j])[0];
if (list.includes(riga.nome)) {
alertIndiceSommario = true;
alertCounter++;
// la prima volta non mostro l'alert (per dare tempo all'utente di modificare dopo un copia-incolla)
if (direct || alertCounter > 1) {
alert('Ci sono due o più righe di Indice Sommario che puntano alla stessa pagina: ' + riga.nome +
'. Si ricorda che il campo nome= deve contenere il nome completo della pagina. È possibile comunque salvare e correggere in un secondo momento.');
alertShown = true;
}
return true;
} else if (riga.nome != undefined && riga.nome.trim() != '') {
list.push(riga.nome);
}
}
}
return false;
};
/* prende i tooltip che appaiono cliccando "i" e li aggiunge anche su label e campi */
addTooltips = function() {
$('.prp-index-fieldLayout .oo-ui-fieldLayout-header .oo-ui-labelElement-label').each(function(index) {
fieldName = $(this).attr('for');
tooltipId = $('[name="' + fieldName + '"').attr('aria-describedby');
tooltipText = $('#' + tooltipId).html();
$(this).attr('title', tooltipText);
$('[name="' + fieldName + '"').attr('title', tooltipText);
});
};
normalizeApostrofi = function() {
$('#wpprpindex-Sommario').val($('#wpprpindex-Sommario').val().replace(/’/g, "'").replace(/—/g, "-"));
};
window.setInterval(function() {
counter++;
addTooltips();
normalizeApostrofi();
if ($('#compilaSommarioBtn').length === 0)
initCompilaSommario();
if ($('#pagelistInfo').length === 0)
showPagelistInfo();
templatizeSource();
// ogni 2 minuti ripropone l'alert
if (counter % 120 == 0)
alertIndiceSommario = false;
checkIndiceSommario(false);
if ($('#wpSave, #wpPreview').length && !onSaveCheck) {
$('#wpSave, #wpPreview').click(function(e) {
if (!alertShown && checkIndiceSommario(true)) {
e.preventDefault();
}
});
onSaveCheck = true;
}
}, 1000);
});