MediaWiki:Gadget-segnalazioneErrori.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.
$(document).ready(function() {
	
	/*if ( mw.config.get("wgRestrictionEdit").length>0) {
		$('<li id="ca-view" class="collapsible"><span><a href="javascript:mw.cue()">Segnala un errore</a></span></li>').insertBefore($("#ca-viewsource"));
	} else {
		if (mw.config.get("wgCanonicalNamespace")==="Page" && mw.config.get("wgUserName")===null && prpPageQuality>2) {
			$('<li id="ca-view" class="collapsible"><span><a href="javascript:mw.cue()">Segnala un errore</a></span></li>').insertBefore($("#ca-edit"));
		}
	}*/
	if (mw.config.get("wgCanonicalNamespace") === "Page" && mw.config.get("wgUserName") === null && mw.config.get('prpPageQuality') > 2) {
		$('<li id="ca-segnalaErrore" class="collapsible"><span><a href="#" id="segnalaErroreBtn">Segnala un errore</a></span></li>').insertBefore($("#ca-edit,#ca-viewsource"));
	}
	
	$('#segnalaErroreBtn').click(function (e) {
		e.preventDefault();
		dialog = $('<div class="box segnalaErroreBox">');
		$("body").append(dialog);
		$(".segnalaErroreBox").draggable();
		$(".segnalaErroreBox").append('<div class="box-title">Segnala errore<span class="icon-close"></span></div>');
		$(".segnalaErroreBox").append('<div class="box-main segnalaErroreBoxMain"></div>');
		
		$(".segnalaErroreBoxMain").append("<p>Proponi la correzione di un errore.</p>"
			+ "<p><b>Istruzioni:</b><ul>"
			+ "<li><b>seleziona</b> il testo errato;</li>"
			+ "<li><b>clicca </b>su <i>Importa selezione</i>;</li>"
			+ "<li><b>correggi</b> il testo errato nel campo <i>Correzione proposta</i>;</li>"
			+ "<li><b>clicca</b> su <i>Salva proposta correzione</i>.</li></ul></p>");
		$(".segnalaErroreBoxMain").append('<p>Testo da correggere: <span id="errata" style="color:red">(nessun testo selezionato)</span></p>');
		$(".segnalaErroreBoxMain").append('<span>Correzione proposta:</span>');
		$(".segnalaErroreBoxMain").append('<textarea id="corrige">');
		$(".segnalaErroreBoxMain").append('<span>Commento (opzionale):</span>');
		$(".segnalaErroreBoxMain").append('<textarea id="commento">');
		$(".segnalaErroreBoxMain").append('<br>');
		$(".segnalaErroreBoxMain").append('<button class="btn blue" id="importaSelezione">Importa selezione</button> ');
		$(".segnalaErroreBoxMain").append('<button class="btn blue" id="salvaCorrezione">Salva proposta correzione</button> ');
		$(".segnalaErroreBoxMain").append('<button class="btn blue" id="annullaCorrezione">Annulla</button>');
		$("#importaSelezione").click(function() {
			var testo = window.getSelection();
			$("#errata").text(testo);
			$("#corrige").val(testo);
		});
		$("#salvaCorrezione").click(function() {
			//console.log("output");
			var testoerrato = $.trim($("#errata").text());
			var testocorretto = $.trim($("#corrige").val());
			var commento = $("#commento").val();
			var messaggio = "==Segnalazione errore "+mw.config.get("wgPageName")+"==\nNella pagina: [["+mw.config.get("wgPageName")+"]] il testo: <i>"+testoerrato + "</i> ";
			if (testocorretto.length>0) {
				messaggio += "dovrebbe essere corretto in <i>" + testocorretto + "</i>.";
			}
			else { 
				messaggio += "dovrebbe essere cancellato.";
			}
			if ($.trim(commento)!=="") {
				messaggio += "\nCommento: " + commento;
			}
			messaggio += (" --"+"~"+"~"+"~"+"~");
			
			var testoPrec = pageGet("Progetto:Trascrizioni/Proposte di correzione");
			var dati = {
				nome: "Progetto:Trascrizioni/Proposte di correzione",
				testo: testoPrec+"\n"+messaggio,
				sommario: "Notifica proposta di correzione",
				feedback: "Grazie! Il messaggio è stato registrato in Progetto:Trascrizioni/Proposte di correzione"
			};
			pagePut(dati);
			$(".segnalaErroreBox").remove();
		});
		$("#annullaCorrezione, .segnalaErroreBox .icon-close").click(function() {
			$(".segnalaErroreBox").remove();
		});
	});
});