MediaWiki:IconeSALtesti.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.
arrayMese = new Array(" ", "gennaio", "febbraio", "marzo", "aprile", "maggio", "giugno", "luglio", "agosto", "settembre", "ottobre", "novembre", "dicembre");

function addQuality(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;
}

function addQualityButtons() {
	if (mw.config.get("wgNamespaceNumber") !== 0 ) return;

	//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">&nbsp;<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, 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');
	}
}

if (mw.config.get("wgAction") == 'edit' || mw.config.get("wgAction") == 'submit') {
	/* Aggiunge un sistema rapido per modificare la qualità dei testi. Opera di ThomasV */

	$(document).ready(addQualityButtons);
}


//mostra i radiobutton in modifica
function addQualityButtonsIndex() {
	
	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">&nbsp;<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à 
function addQualityIndex(form, value) {
	form.elements.wpSummary.value = "Porto il SAL a SAL " + value;
	form.elements["wpprpindex-Qualità"].value = value;
}

/*
 * aggiunge i radiobutton SAL anche nelle pagine di indice
 */
if (mw.config.get("wgNamespaceNumber") == 110 && mw.config.get('wgPageName').indexOf('/') == -1 && (mw.config.get("wgAction") == 'edit' || mw.config.get("wgAction") == 'submit')) {

	$(document).ready(addQualityButtonsIndex);
}