MediaWiki:Gadget-newThumbs.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.
importScript("User:Alex brollo/pagina.js");

function getIndexData() {
 
	var pdxpc = []; // pdxpc è una lista semplice in cui la pagina djvu è l'indice
	var pd = ""; // pd è pagina djvu 
	var pc = ""; // pc è pagina cartacea
	//mw.currentIndex="Index:"+mw.config.get("wgPageName").substring("Wikisource:Thumbs/".length);
	mw.currentIndex=mw.config.get("wgPageName");
	// lettura dell'html della pagina Indice corrispondente 
 
	html=$("#content");
 
	// estrazione della lista dei link alle pagine
	var links = $(".pagineDellEdizione a", html); // 
 
	// estrazione di pd e pc dai link e assegnazione a una lista in cui l'indice è pd e il valore è pc
	for (i = 0; i < links.length; i += 1) {
		pd = $(links[i]).attr("title").match(/\/(\d+) */)[1]*1;
		try {
			pc = [$.trim($(links[i]).text().match(/^0*(.+)/)[1]),$(links[i]).attr("class").match(/quality(\d)/)[1]];
		}
		catch(err) {
			pc = [$.trim($(links[i]).text().match(/^0*(.+)/)[1]),""];
		}
		pdxpc[pd] = pc;
 	}
 
	// la lista viene popolata con stringhe vuote se vi sono dei "buchi"
	for (i = 1; i < pdxpc.length - 1; i += 1) {
		if (pdxpc[i] === undefined) pdxpc[i] = ["",""];
	}
    // costuisco un array a chiave con chiave pc
	var pcxpd={};
	for (i = 1; i < pdxpc.length - 1; i += 1) {
		pcxpd[pdxpc[i][0]]={num:i,qual:pdxpc[i][1]};
	}
	var linksc=$(".tableItem",  html);
	var itemList=[];
	for (var item=0; item<linksc.length; item+=1) {
 
		itemEl={};
		itemEl.ns0Name=$("a",linksc.eq(item)).first().attr("title").replace(" (page does not exist)","");
		itemEl.ns0Title=$("a",linksc.eq(item)).first().text();
		itemEl.PageName=$("a",linksc.eq(item)).last().attr("title").replace(" (page does not exist)","");
		itemEl.PageTitle=$("a",linksc.eq(item)).last().text();
		itemList.push(itemEl);
	}
	//return [pdxpc,pcxpd,itemList];
	var baseUrl=$(".thumbinner img", html).attr("src").replace(/\/page\d+/,"/page§pagenum§").replace("250px","200px");
	mw.currentIndexData=[pdxpc,pcxpd,itemList,baseUrl];
	console.log("OK: caricati dati indice "+mw.currentIndex);
}
mw.codeSal=function(qual) {
	var codeSal=['<img alt="00%.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/00%25.svg/15px-00%25.svg.png" width="15" height="15">',
		'<img alt="25%.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/34/25%25.svg/15px-25%25.svg.png" width="15" height="15">',
		'<img alt="50%.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c2/50%25.svg/15px-50%25.svg.png" width="15" height="15">',
		'<img alt="75%.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/4/49/75%25.svg/15px-75%25.svg.png" width="15" height="15">',
		'<img alt="100 percents.svg" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/c7/100_percents.svg/15px-100_percents.svg.png" width="15" height="15">'];
	return codeSal[qual];
};

mw.attivaThumbs = function () {
		var style={
		"width":window.screen.availWidth - 60,
		"minHeight":window.screen.availHeight - 40, 
		"position":"absolute", 
		"top":'20px', 
		"left":'20px', 
		"background-color": "lightGray", 
		"z-index": 110,
		"border": '2px solid red',
		'text-align': 'center',
                'font-size': '0.7pc'
	};
	var thumbBox=$("<div>");
	thumbBox.css(style).attr("id","thumbBox").appendTo($("#content")); 
	
	//bottone di chiusura
	var closeThumbBox = $('<a href="javascript:void(0)" style="float: right"><img src="//upload.wikimedia.org/wikipedia/commons/2/20/CloseWindow19x19.png"/></a>')
		.click(function() {$('#thumbBox, #editLayer').remove()});
	$('#thumbBox').append(closeThumbBox);
	
	// $("#thumbBox").click(function () { 	$(this).remove(); 	});
	if (mw.config.get("wgCanonicalNamespace")==="Index" && mw.config.get("wgAction")==="view") {
		console.log("Eseguo versione 21.10-03");
		getIndexData(); // importo  i dati dell'indice
		
		var schema='<span class="thumbPage"><img src="§url§" >'+
		'<br/><a href="/wiki/Pagina:§_base§/§pagenum§" class="prp-pagequality-0">Pag. §pagenum§ (§booknum§)</a> '+
		'<a href="javascript:void(0)" title="Clicca per attivare azioni sulla pagina" class="azioni" onclick="mw.azioni(this)">Modifica</a>'+
		'§sal§</span>';
		schema=schema.replace("§url§",mw.currentIndexData[3]);
		for (i=1;i<mw.currentIndexData[0].length;i+=1) {
			var schemaCurrent=schema.replace(/§pagenum§/g,i)
				.replace(/§booknum§/g,mw.currentIndexData[0][i][0])
				.replace("§_base§",mw.currentIndex.replace("Indice:","").replace(/ /g,"_"));
				
			if (mw.currentIndexData[0][i][1]==="") 
				schemaCurrent=schemaCurrent.replace('class="', 'class="new ').replace("§sal§","");
			else
				schemaCurrent=schemaCurrent.replace("§sal§",mw.codeSal(mw.currentIndexData[0][i][1]*1)); // aggiunta SAL
			$("#thumbBox").append($(schemaCurrent));
		}
		$("#thumbBox span").filter(".new").each(function () {$("a",$(this)).eq(0).css("color","red");});
	}
};

mw.azioni=function (th) {
	var testo=$("a",$(th).parent()).eq(0).text();
	var pImm="Pagina:"+mw.config.get("wgTitle").replace("Thumbs/","")+"/"+/Pag\. (\d+) /.exec(testo)[1]; 
	// var pBook=/\((.+)\)/.exec(testo)[1];
	/* var azione=prompt("pagina immagine: "+pImm+
		"\npagina libro: "+pBook+
		"\n1: crea pagina vuota\n2: visualizza/modifica testo pagina\n3: inserisci iwpage");
	console.log(azione); */
	var azione="2"; // passo automaticamente all'azione modifica wikitesto 
	if (azione==="1") mw.azzeraPagina(pImm);
	if (azione==="2") {
		mw.eiv.pageRead(pImm);
		mw.eiv.creaBox();
		mw.eiv.creaBoxImmagine(th);
	}
};

$(document).ready(function (){
	if (mw.config.get("wgCanonicalNamespace")==="Index") {
		//getIndexData();
		img=$('<a href="javascript:void(0)"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/1/17/Farm-Fresh_pictures.png/20px-Farm-Fresh_pictures.png" /></a>')
			.click(function () {mw.attivaThumbs();});
		div=$('<div class="top_icon_raw" title="Creazione galleria immagini" style="margin-right:2px;"></div>').append(img);
		$(".top_icon_cont").append(div);
}
	
});