MediaWiki:Gadget-showbox.js

Da Wikisource.

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 ($) {
	var sb = $("<div id='showbox' class='showbox partscreen' style='display:none; position:fixed; '></div>");
	//sb.attr("ondblclick", "$(this).hide();");
	var iconaChiusura = $('<img src="https://upload.wikimedia.org/wikipedia/commons/f/f8/Tooltip-CloseButton.png"  style="float:right;cursor:pointer;" />').attr("onclick", "$('#showbox').hide()");
        var iconaFullscreen = $('<img src="https://upload.wikimedia.org/wikipedia/commons/d/d3/WikEd_fullscreen.png"  style="float:right;cursor:pointer;" id="iconaFullscreen" />').attr("onclick", "toggleShowbox()");
        
	sb.append($('<div id="showboxbar" class="showboxBar"></div>'));
	sb.append($("<div id='showboxContent'></div>"));
	sb.appendTo($("body"));
        //sb.draggable({ handle: "#showboxbar"});
        //sb.draggable( "option", "handle", "#showboxbar" );
	$("#showboxbar").append(iconaChiusura);
        $("#showboxbar").append(iconaFullscreen);
        $("#showbox").draggable({handle:"#showboxbar"});
}(jQuery));
     
// ingrandisce e rimpicciolisce showbox
function toggleShowbox() {
if ($("#showbox").css("top")!="0px")     
      {$('#showbox').css('width','100%').css('height','100%').css('top','0').css('right','0').css('left','0').css('z-index','1003');}
else 
      {$('#showbox').css('width','45%').css('height','55%').css('top','80px').css('left','20px');}
}
// costruzione riga link

// costruisce una riga link dai link wikidata in showbox
function rigalink(sigla,dati) {
   var icona='<img src="http://upload.wikimedia.org/wikipedia/commons/e/e3/Ppbc_icon_download.png" onclick="caricaDati(&quot;'+sigla+'&quot;)" />';

   var riga= '<p>Link a '+sigla+'.wikipedia: <a href="http://'+sigla+'.wikipedia.org/wiki/' + 
       dati.sitelinks[sigla+"wiki"].title.replace(/ /g, "_") + '">' + 
       dati.sitelinks[sigla+"wiki"].title + 
       "</a> " + icona + "</p>";
   return riga;
}
// funzione provvisoria per sostituire i dati wikidata nell'oggetto-template Autore
// autoreSource: oggetto-autore wikisource
// autoreWikidata: oggetto-autore wikidata
// pagina: shortcut per nome pagina su wikipedia
function carica(lang) {
if (lang===undefined) {lang="it";}
var pagina=$("body").data("wikidata").entities[$("body").data("wikidataID")].labels[lang].value;
// verifica se c'è aperto un form Autore; se c'è, memorizza l'apertura e chiudilo
var formPresent=false;
if ($("#editFormAutoreRight").length===1) {
    formPresent=true;
    closeEditForm();
}
// verifica se in leggiBox() c'è un template Autore: se non c'è, aggiungine uno vuoto
scriviBox(leggiBox().replace(/\{\{autore/g,"{"+"{Autore"));
if ((leggiBox()).indexOf("{"+"{Autore")===-1) {
     scriviBox("{"+"{Autore\n| Nome = \n| Cognome = \n| Eventuale altro nome = \n| Eventuale pseudonimo = \n"+
     "| Eventuale nome reale = \n| Giorno e mese di nascita = \n| Anno di nascita = \n| Giorno e mese di morte = \n"+
     "| Anno di morte = \n| Secolo di attività = \n| Attività = \n| Nazionalità = \n"+
     "| Professione e nazionalità = \n| Nome della pagina su Wikipedia = \n| Nome della pagina su Wikiquote = \n"+
     "| Nome della pagina su Wikinotizie = \n| Nome della pagina su Commons = \n| Nome dell'immagine = \n}}"+leggiBox());
      }
 
// leggi il tl Autore da edit box e trasformalo in un oggetto
var autoreSourceCompleto=parseTemplate("Autore",leggiBox());
var autoreSource=autoreSourceCompleto[0];
 
// leggi data (bareData) e estrai l'oggetto in base alla lingua
if (lang==="it") {var autoreWikidataCompleto=parseTemplate("Bio",$("body").data("bareData"));
    autoreWikidata=autoreWikidataCompleto[0];
    }
 
// converti l'oggetto autoreWikidata in un oggetto compatibile con autoreSource in base alla lingua 
 
autoreSource["Anno di morte"]=autoreWikidata.AnnoMorte;
autoreSource["Anno di nascita"]=autoreWikidata.AnnoNascita;
autoreSource["Attività"]=autoreWikidata["Attività"];
     if (autoreWikidata["Attività2"] !== undefined && autoreWikidata["Attività2"]!=="") autoreSource["Attività"]+="/"+autoreWikidata["Attività2"];
	 if (autoreWikidata["Attività3"] !== undefined && autoreWikidata["Attività3"]!=="") autoreSource["Attività"]+="/"+autoreWikidata["Attività3"];
autoreSource.Cognome=$.trim(pagina.replace(autoreWikidata.Nome,""));
autoreSource["Giorno e mese di morte"]=autoreWikidata.GiornoMeseMorte;
autoreSource["Giorno e mese di nascita"]=autoreWikidata.GiornoMeseNascita;
autoreSource["Nazionalità"]=autoreWikidata["Nazionalità"];
autoreSource.Nome=autoreWikidata.Nome;
 
autoreSource.Wikipedia=pagina;
autoreSource["Nome dell'immagine"]=autoreWikidata.Immagine;
autoreSource["Nome della pagina su Commons"]="Category:"+pagina;
autoreSource["Professione e nazionalità"]=autoreSource["Attività"].replace(/\//g,", ")+ " " + autoreSource["Nazionalità"];
autoreSourceCompleto[0]=autoreSource;
var templateVecchio=find_stringa(leggiBox(),"{"+"{Autore","}}",1,"{"+"{");
var templateNuovo=rewriteTemplate(autoreSourceCompleto);
scriviBox(leggiBox().replace(templateVecchio,templateNuovo));
if (formPresent) startEditAutor(); 
}
function showDati() {
   if ($("#showboxSubContent").length===0) {
     $("#showboxContent").append($('<div id="showboxSubContent"></div>'));
     }
   $("#showboxSubContent").html($("body").data("bareData"));
}
// carica i dati wikidata nel template Autore
function caricaDati(lang) {
    
    var sito=lang+".wikipedia.org"; 
    var pagina=$("body").data("wikidata").entities[$("body").data("wikidataID")].sitelinks[lang+"wiki"].title;            
    getIwPage(pagina,sito,"text",showDati); // altri parametri?
}

// importazione dei link da wikidata a showbox
function wikidatalinks() {
	var dati = $("body").data("wikidata").entities[$("body").data("wikidataID")],
		testo = "";
	if (dati.sitelinks.itwiki !== undefined) {
		testo += rigalink("it",dati);
	}
	if (dati.sitelinks.enwiki !== undefined) {
		testo += rigalink("en",dati);
	}
	if (dati.sitelinks.frwiki !== undefined) {
		testo += rigalink("fr",dati);
	}
	if (dati.sitelinks.dewiki !== undefined) {
		testo += rigalink("de",dati);
	}

	$("#showboxContent").html(testo);
	$("#showbox").show();
}

//apre un box fixed in cui visualizzare il wikicode e ci aggiunge una barra e il wikicode
metadati={};


function show(option) {
   if (option===undefined) option="wiki text";
   
   if (option==="wiki text") {
       var wt=acchiappaWikicode(mw.config.get('wgPageName'));
       $("#showboxContent").html("");
       if (wt[0]!=="")  $('<div style="white-space:pre-wrap; width:97%; padding:5px;  background-color:#D9FFFF; overflow:auto; ">'+wt[0]+ '</div>').appendTo($("#showboxContent"));
   $('<div style="white-space:pre-wrap; width:97%; padding:5px; background-color:#FCFCFC;">'+wt[1]+ '</div>').appendTo($("#showboxContent"));
   if (wt[2]!=="") $('<div style="white-space:pre-wrap; width:97%; padding:5px; background-color:#CCFFFF; overflow:auto;">'+wt[2]+' </div>').appendTo($("#showboxContent"));
   $("#showbox").show();
   }
   /*if (option=="metadata") {
      parseMetadata();
      $("#showboxContent").html("");
      $(".hproduct").clone().appendTo($("#showboxContent"));
      $("#showbox").show();
   }
   if (option=="lista") {
       // la funzione viene chiamata dentro un callback di getPage e dispone di una variabile lista
                  // che contiene un oggetto jQuery lista
       $("#showboxContent").html("");
       $(lista).appendTo($("#showboxContent"));
       $("#showbox").show();
   }
   if (option=="wikidata") {
       // la funzione viene chiamata dentro un callback di getPage e dispone di una variabile lista
                  // che contiene un oggetto jQuery lista
       $("#showboxContent").html("");
       wikidatalinks();
       $("#showbox").show();
   }*/
 
} 
/* $("*").mousemove(function(){
	var into=$("div.showbox").height();
	var int1=into-17
	$("div#showboxContent").css("height",""+int1+"px");
}); */
/*
$("div.showbox").css({
     "top":"80px",
     "resize":"both",
     "position":"absolute"
 });
$(".fullscreen").css({
     "width":"100%", 
     "height":"100%", 
     "top":"0px", 
     "right":"0px",
     "left":"0px",
     "z-index":"1003"
     });
$(".partscreen").css({
     "width":"45%", 
     "height":"55%", 
     "top":"80px", 
     "left":"20px" 
     });
$("div.showboxBar").css({
     "white-space":"pre-wrap", 
     "height":"17px",
     "background-color":"#4D8AC0"
     });
$("div#showboxContent").css({
     "overflow":"auto",
     "width":"100%"
     });
$("#showboxSubContent").css({
     "overflow":"auto", 
     "white-space":"pre-wrap", 
     "width":"100%", 
     "background-color":"white",
     "border":"1px solid blue",
     "padding":"5px"
     });
     
*/