Utente:Alex brollo/W.js

'A Wikisource.

Notarella: Aroppo pubbreca putisse necessità 'e pulezzà 'a caché d' 'o navigatóre pe vedé 'e cagnamienti.

  • Firefox / Safari: Sprémme 'o buttóne maiuscole e ffà clic ncopp'a Recarreca, o pure spremme Ctrl-F5 o Ctrl-R (⌘-R ncopp'a Mac)
  • Google Chrome: spremme Ctrl-Shift-R (⌘-Shift-R ncopp'a nu Mac)
  • Internet Explorer/edge: Spremme 'o buttóne Ctrl pe' tramente ca faie click ncopp'a Refresh, o pure spremmere Ctrl-F5
  • Opera: Vaje addò 'o Menu → Mpustaziune (Opera → Mpustaziune ncopp' 'o Mac) e po' ncopp'a Privacy & sicurezza → Pulezza date d' 'o browser → Immaggene e file d' 'a cache.
// https://upload.wikimedia.org/wikipedia/commons/e/ef/Button_Wikidata_editor_toolbar.png

//https://www.wikidata.org/w/api.php?action=wbsearchentities&search=frisone&language=it
risultato = {};
importStylesheet("Utente:Alex brollo/W.css");
function ssel() {
    var textbox1=$("#wpTextbox1")[0];

	var txt=mw.activeElement.value;
	var s=[];
	s[0]=txt.substring(0,textbox1.selectionStart);
	s[1]=txt.substring(textbox1.selectionStart,textbox1.selectionEnd);
	s[2]=txt.substring(textbox1.selectionEnd);
	return s;
} 

function selWikidata() {
	var t = ssel();
	if (t[1] === "") {
		alert("Nessun testo selezionato");
	} else {
		wbs(t);
	}
}

function getWikidata(id) {
	t = $.getJSON({url:"https://www.wikidata.org/wiki/Special:EntityData/"+id+".json", async:false}).responseJSON.entities[id];
	var dati = {};
	dati.id = id;
	dati.label = t.labels.la!==undefined ? t.labels.la.value: "";
	dati.description = t.descriptions.la!==undefined?t.descriptions.la.value:"";
	dati.lawiki = t.sitelinks.lawiki!==undefined?t.sitelinks.lawiki.title:"";
	dati.lawikisource = t.sitelinks.lawikisource!==undefined?t.sitelinks.lawikisource.title.replace("Scriptor:",""):"";
	return dati;
}

// bozza funzione ricerca 
// riceve una lista t selection
function wbs(testo) {
	var entities=[];
    $.ajax({
        url: 'https://www.wikidata.org/w/api.php',
        data: {
            format: 'json',
            action: 'wbsearchentities', 
            search: testo[1].replace(/’/g,"'"),
            language: 'la'
        },
        dataType: 'jsonp' // this is the important one!
    }).done(function(data) { 
	    risultato=data;
	    // risultato.search è una lista di oggetti
	    
	    for (i = 0; i < risultato.search.length; i++) {
	    	entities.push(risultato.search[i].id+" "+risultato.search[i].label+" "+risultato.search[i].description);
	    }
	    
	    selBox(testo,entities);
    });
}
// bozza script creatore di tool di selezione 
function selBox (selection,lista) {
    if ($("#box_wds").length!==0) $("#box_wds").remove();
    var selettore='<div id="box_wds" class="box">'+
    '   <div class="box-title">Ricerca in Wikidata<span class="icon-close"></span></div>'+
    '   <div class="box-main">'+
    '   <input id="input1_selettore" type="text">'+ // testo
    '   <input id="input2_selettore" type="text">'+ // ID wikidata
    '   <button id="bottone1_selettore" type="button" class="btn blue">OK</button>'+
    '   <button id="bottone3_selettore" type="button" class="btn blue">Cerca</button>'+
    '   <button id="bottone2_selettore" type="button" class="btn blue">Annulla</button>'+
    '   <div id="cont_selettore">'+
    '      <ul id="ul_selettore">'+
    '      </ul>'+
    '   </div>'+
    '   </div>'+
    '</div>';
    
    var selez = selection;
    $("body").append(selettore);
    $('#box_wds').draggable({
		create: function( event, ui ) {
			$(this).css({
				right: "auto",
				top: $(this).position().top,
				left: $(this).position().left
			});
		}
	});
	// escludi il corpo del box dal trascinamento
	$('#box_wds').draggable('option', 'cancel', '.box-main');
	$('#box_wds .icon-close').click(function() {
		$('#box_wds').remove();
	});
    
    $("#input1_selettore").val(selez[1]);
    $("#bottone2_selettore").click(function() {
    	$("#box_wds").remove();
    });
    $("#bottone3_selettore").click(function() {
    	var testoRicerca=$("#input1_selettore").val();
    	testoRicerca=escape($.trim(testoRicerca).replace(/’/g,"'").toLocaleLowerCase());
    	var url="https://www.wikidata.org/w/index.php?search=&search=TESTO&title=Special:Search&go=Vai".replace("TESTO",testoRicerca);
    	window.open(url,"wikidata");
    });
    // bottone OK
    $("#bottone1_selettore").click(function() {
    	var dati = getWikidata($("#input2_selettore").val());
         selez[1] = "{"+"{"+"Wl|"+$("#input2_selettore").val()+"|"+$("#input1_selettore").val()+"}}";
         /*selez[1]="{"+"{"+"Wl|"+dati.id+
        	"|"+$("#input1_selettore").val()+
        	"|"+"s="+dati.lawikisource+
        	"|"+"w="+dati.lawiki+"}}"; */
         //ws.scriviBox(selez.join(""));
         $("#wpTextbox1").val(selez.join(""));
        $("#box_wds").remove();
	});
    for (var i = 0; i < lista.length; i++) {
        el = $("<li>").text(lista[i]).click(function() {
			$("#input2_selettore").val($(this).text().split(" ")[0]);
		});
        $("#ul_selettore").append(el);
    }
}

if ( typeof $ != 'undefined' && typeof $.fn.wikiEditor != 'undefined' ) {
	$( function() {
		$( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
			'section': 'advanced',
			'group': 'format',
			'tools': {
				'Connessione wikidata': {
					label: 'Connessione wikidata',
					type: 'button',
					icon: '//upload.wikimedia.org/wikipedia/commons/e/ef/Button_Wikidata_editor_toolbar.png',
					action: {
						type: 'callback',
						execute: function(context){
							selWikidata();
						}
					}
				}
			}
		});
	});
}