MediaWiki:Gadget-iconeSAL.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() {
arrayMese = new Array(" ", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");
addQuality = function (form, value) {
var text = "";
switch (value) {
case "25%":
text = "SAL 25%";
break;
case "50%":
text = "SAL 50%";
break;
case "75%":
text = "SAL 75%";
break;
case "100%":
text = "SAL 100%";
break;
}
form.elements.wpSummary.value = "Porto il SAL a " + text;
s = form.elements.wpTextbox1.value;
var qTestoRegexp = /\{\{[Qq]ualità.*?\|arg=(.*?)\}\}/;
var match = qTestoRegexp.exec(s);
var argomentoTesto = "Da definire";
if (match) {
argomentoTesto = match[1];
}
deleteAvzRegex = new RegExp("\{\{Qualità(.*?)\}\}", "gi");
s = s.replace(deleteAvzRegex, "");
var avzDate = new Date(); // Ottengo la data
var dateString = avzDate.getDate() + " " + arrayMese[avzDate.getMonth() + 1] + " " + avzDate.getFullYear(); // Setto la stringa della data. Formato: giorno mese anno
form.elements.wpTextbox1.value = "{" + "{Qualità|avz=" + value + "|data=" + dateString + "|arg=" + argomentoTesto + "}" + "}" + s;
};
addQualityButtons = function() {
//esci se siamo in una pagina di disambigua
if ($("#wpTextbox1").val().match(/\{\{[Dd]isambigua/)) return;
if (mw.config.get('wgTitle').match(/^Pagina principale/)) return;
container = $('<div>').addClass('oo-ui-widget').addClass('oo-ui-widget-enabled');
body = $('<span>').attr('id', 'wpQuality-container');
quality1 = $('<span class="quality1 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Testo incompleto (25%)"><input type="radio" name="quality" value="25%" onclick="addQuality(this.form,this.value)"><span></span></span>');
quality2 = $('<span class="quality2 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Testo completo, ma da formattare (50%)"><input type="radio" name="quality" value="50%" onclick="addQuality(this.form,this.value)"><span></span></span>');
quality3 = $('<span class="quality3 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Testo completo e formattato, da rileggere (75%)"><input type="radio" name="quality" value="75%" onclick="addQuality(this.form,this.value)"><span></span></span>');
quality4 = $('<span class="quality4 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Testo riletto usando la fonte cartacea (100%)"><input type="radio" name="quality" value="100%" onclick="addQuality(this.form,this.value)"><span></span></span>');
link = $('<label for="wpQuality-container"> <a href="/wiki/Aiuto:Stato_di_Avanzamento_del_Lavoro" target="_blank" title="Pagina di aiuto sul significato delle icone (si apre in una nuova finestra)">Cosa significano le icone?</a></label>');
body.append(quality1, quality2, quality3);
if ($("#wpTextbox1").val().match(/<pages/)) {
body.append(quality4);
}
container.append(body, link);
$('.editCheckboxes > .oo-ui-layout').append(container);
//imposta a checked il bottone in base alla qualità del testo
var str = $("#wpTextbox1").val();
var re = /\{\{[Qq]ualità\|avz=([0-9]*%)/;
var m = str.match(re);
if (m) {
switch (m[1]) {
case "100%":
quality4.find('input').prop('checked', true);
break;
case "75%":
quality3.find('input').prop('checked', true);
break;
case "50%":
quality2.find('input').prop('checked', true);
break;
default:
quality1.find('input').prop('checked', true);
}
}
//se ci sono Pagine al 25%, 50% o 75%, non permettere di portare al 100% l'intero testo (si applica ai testi proofread)
if (parseInt($('table.pr_quality td.quality1').attr('width')) +
parseInt($('table.pr_quality td.quality2').attr('width')) +
parseInt($('table.pr_quality td.quality3').attr('width')) > 0) {
$('.editCheckboxes span.quality4 input[name=quality]').attr('disabled','disabled');
}
};
addQualityButtonsIndex = function() {
container = $('<div>').addClass('oo-ui-widget').addClass('oo-ui-widget-enabled');
body = $('<span>').attr('id', 'wpQuality-container');
quality1 = $('<span class="quality1 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Ci sono ancora pagine incomplete (25%)"><input type="radio" name="quality" value="25%" onclick="addQualityIndex(this.form,this.value)"><span></span></span>');
quality2 = $('<span class="quality2 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Tutte le pagine sono complete, ma alcune sono ancora da formattare (50%)"><input type="radio" name="quality" value="50%" onclick="addQualityIndex(this.form,this.value)"><span></span></span>');
quality3 = $('<span class="quality3 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Tutte le pagine sono complete e formattate, ma alcune sono ancora da rileggere (75%)"><input type="radio" name="quality" value="75%" onclick="addQualityIndex(this.form,this.value)"><span></span></span>');
quality4 = $('<span class="quality4 oo-ui-widget oo-ui-widget-enabled oo-ui-inputWidget oo-ui-radioInputWidget" title="Tutte le pagine sono state rilette (100%)"><input type="radio" name="quality" value="100%" onclick="addQualityIndex(this.form,this.value)"><span></span></span>');
link = $('<label for="wpQuality-container"> <a href="/wiki/Aiuto:Stato_di_Avanzamento_del_Lavoro" target="_blank">Cosa significano le icone?</a></label>');
body.append(quality1, quality2, quality3, quality4);
container.append(body, link);
$('.editCheckboxes > .oo-ui-layout').append(container);
switch ($("#editform input[name=wpprpindex-Qualità]").val()) {
case "100%":
quality4.find('input').prop('checked', true);
break;
case "75%":
quality3.find('input').prop('checked', true);
break;
case "50%":
quality2.find('input').prop('checked', true);
break;
default:
quality1.find('input').prop('checked', true);
}
//nascondi il campo qualità nel form dell'indice
$("#editform input[name=wpprpindex-Qualità]").parents('.oo-ui-fieldLayout').hide();
};
//imposta il nuovo valore del SAL nel campo Qualità
addQualityIndex = function(form, value) {
form.elements.wpSummary.value = "Porto il SAL a SAL " + value;
form.elements["wpprpindex-Qualità"].value = value;
};
if (mw.config.get("wgNamespaceNumber") === 0) {
addQualityButtons();
} else if (mw.config.get("wgNamespaceNumber") == 110 && mw.config.get('wgPageName').indexOf('/') == -1) {
addQualityButtonsIndex();
}
});