/**
*
*/
var resetResult;
var lsid;
var lsentid;
const formaClass='frm'
var selectedVista;
var listaPeriodiRisultato;
var listaClausoleRisultato;
var numeroContesti;
$(document).ready(function() {
lsid='';
removeGraph=false;
const cantobadgeclass = 'badge badge-outline-info badge-pill'
const sparqlGenerator = sparqljs.Generator;
const myEngine = new Comunica.QueryEngine();
const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query";
//const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/CommediaReasoningTest/query";
var shownSentenceList = new Set()
listarisultati = [];
listaPeriodiRisultato = [];
listaClausoleRisultato=[]
var commentsArray = []
var resultSentences = new Set()
var cantiche=["Inferno", "Purgatorio","Paradiso"]
var loadedCanti=new Set();
const openSTag="{"
const closeSTag="}"
var cantoDisplayed = "#InfernoCanto_1";
var prevCantoDisplayed = "#InfernoCanto_1";
var contextLength = 3;
var showOffset = 30;
var idCitazione = "citazioneFrase";
initCitazioni();
resetResult=function(){
//console.log('clean result')
cleanSearchResult()
esprlogica = []
}
//hideMinimap();
createAllDivCanti()
//const start = performance.now();
showCanto(formeprima, '1','1')
$("#InfernoCanto_1").attr('style', 'display: d-flex;')
loadedCanti.add("InfernoCanto_1")
drawMinimap("#InfernoCanto_1", false)
const minim=$(" .minimap__content")
//const end = performance.now();
//console.log(`Load cantiche time: ${end - start} ms`);
$("#valoreVista").on('change', function() {
selectedVista = $(this).val();
switch (selectedVista){
case "forme":
$("#vistaFrasi").css("display", "none");
$("#vistaDialoghi").css("display", "none");
$("#vistaMetafore").css("display", "none");
resetFrasi()
$(cantoDisplayed).attr('style', 'display: d-flex;')
break;
case "frasi":
//cancello il grafo sintattico
var periodograph=document.getElementById("periodograph");
if (periodograph!=null){
let showngr=periodograph.getAttribute('name').split("_")
var tmpsent=showngr[0]+"_"+showngr[1]+"_s_"+showngr[2];
resetSentenceStructure(tmpsent)
shownSentenceList.delete(tmpsent)
//$("#periodograph").empty()
periodograph.parentNode.removeChild(periodograph);
}
loadFrasi();
break;
case "metafore":
//loadMetafore();
break;
case "dialoghi":
//loadDialoghi();
break;
case "citazioni":
//cancello il grafo sintattico
var periodograph=document.getElementById("periodograph");
if (periodograph!=null){
let showngr=periodograph.getAttribute('name').split("_")
var tmpsent=showngr[0]+"_"+showngr[1]+"_s_"+showngr[2];
resetSentenceStructure(tmpsent)
shownSentenceList.delete(tmpsent)
periodograph.parentNode.removeChild(periodograph);
}
}
});
$(" ."+formaClass).each(function(idx, element) {
// We cycle through the elements using each() so that we can choose the element specifically that we wish to clean up afterward
var ele = $(element);
ele.tooltip({
content: (function() {return formatTTContent(ele.attr('title'), ele.attr('class').split(' ')[1]);}),
classes:{"ui-tooltip":'Nik_dropdown-content'},
close: function (event, ui) {$(".ui-helper-hidden-accessible").remove();},
create: function(ev, ui) {$(this).data("ui-tooltip").liveRegion.remove();},
hide: false,
show: {delay: 800,duration: 0}
});
});
$( " ."+formaClass ).dblclick(function() {
var sentenceId=$(this).attr('class').split(' ')[0].replace('$','')
console.log('dblclick '+lisid)
if (shownSentenceList.has(sentenceId)){
resetSentenceStructure(sentenceId)
shownSentenceList.delete(sentenceId)
lsid=''
}
else{
//showSentenceStructure (sentenceId)
shownSentenceList.add(sentenceId)
}
});
$(" ."+formaClass).hover(function(idx, element) {
var sentenceId=$(this).attr('class').split(' ')[0].split('_')
var tmplisid=sentenceId[0]+'_'+sentenceId[1]+'_'+sentenceId[3]
lsentid=$(this).attr('class').split(' ')[0]
lisid=tmplisid
});
/*
* Espansione del contesto
*/
jQuery(document).delegate(' .espandiFrase, .riduciFrase', 'click', function() {
if ($(this).hasClass("disabled")) {
return;
};
var posizioniEspansione=[]
var cid = $(this).attr('id');
var parcid = cid.split('_');
var posVerso
reit = '#versiFrase' + parcid[4]
var expcontextLength=$(reit+" > li").length
if(cid.includes('_er_')){
expcontextLength=contextLength
}else{
posVerso = $(reit).attr('posVerso')
if (posVerso == 1){ // caso inizio o fine canto
expcontextLength+=contextLength;
}
}
//svuoto la lista di versi
$(reit).empty()
//genero la nuova lista di versi
var versiContestoExp = getFormaContext(parseInt(parcid[3]), expcontextLength);
var divVersoExp=''
var setVersicontestoExp = new Set()
for (forma of versiContestoExp) {
if (!setVersicontestoExp.has(forma.verso)) {
divVersoExp = createDivVersoLI(forma.cantica, forma.verso, forma.canto)
$(reit).append(divVersoExp)
setVersicontestoExp.add(forma.verso)
}
createSpanFormeNew(forma.testo, forma.catg, 'e' + forma.posizione, forma.periodo, forma.funzperiodo, divVersoExp)
posizioniEspansione.push('e' + forma.posizione)
}
if(cid.includes('_er_')){
///$("#"+cid).css("display", "none");
$("#"+cid).removeClass( "btn-outline-primary" );
$("#"+cid).addClass( "btn-outline-secondary" );
$("#"+cid).addClass( "disabled" );
}
else{
cid = cid.replace("ex","er");
///$("#"+cid).attr('style', 'display: d-flex;');
$("#"+cid).removeClass( "btn-outline-secondary" );
$("#"+cid).removeClass( "disabled" );
$("#"+cid).addClass( "btn-outline-primary" );
}
//evidenzio risultato
//var idris = '#e' + parcid[3]
//$(idris).addClass("font-weight-bold mark ")
for (ris of listarisultati) {
idris = '#e' + ris
$(idris).addClass("font-weight-bold mark ")
}
//gestisco risultati se unità di ricerca è periodo
if (listaPeriodiRisultato.length){
for (msid of listaPeriodiRisultato){
loadPeriodo(msid)
}
}
//gestisce risultati se unità di ricerca è frase
if (listaClausoleRisultato.length){
for (clsid of listaClausoleRisultato){
let tmpid=clsid.split('-')
loadFrase(tmpid[0], tmpid[1])
}
}
//aggiungo listeners
//addFormaListenersInRisultato(posizioniEspansione)
addFormaListenersInCanto()
//disegno minimap, onlyContent = true
drawMinimap('#vistaFrasi', true)
//manageMM('#vistaFrasi')
})
/*
* Costruzione e visualizzazione del risultato in frasi.
*/
/*
* Costruzione e visualizzazione del risultato in frasi.
*/
//$.manageResultList(start, offset)
var prevstart=-1
var prevoffset=-1
jQuery.manageResultList = function manageResultList(start, offset = showOffset){
if(offset==prevoffset && start==prevstart && cantoDisplayed=='#vistaFrasi')
return
console.log('Paginazione...')
prevstart=start
prevoffset=offset
if(cantoDisplayed!='#vistaFrasi'){
prevCantoDisplayed=cantoDisplayed;
$(cantoDisplayed).css("display", "none");
//visualizzo
$("#vistaFrasi").attr('style', 'display: d-flex;');
cantoDisplayed="#vistaFrasi";
}
//listarisultati.sort(function(a, b){return a - b});
showFrasi (start, offset)
if (selectedVista=='frasi'){
loadFrasi();
}
addFormaListenersInCanto()
drawMinimap('#vistaFrasi', false)
}
function countResultContexts(){
var numeroRisultati = 0;
var ultimaPosizione = -1;
for (risultato of listarisultati){
if (risultato <= parseInt(ultimaPosizione)){
continue;
}
numeroRisultati=numeroRisultati+1;
var versiContesto= getFormaContext(risultato, contextLength);
var ultimaForma=versiContesto.slice(-1)
ultimaPosizione=ultimaForma[0].posizione
}
console.log('N. contesti: '+numeroRisultati)
numeroContesti=numeroRisultati
return (numeroRisultati)
}
function getResInPage(startcont, endcont){
var res = [];
var ultimaPosizione = -1;
var contaContesti=0
for (risultato of listarisultati){
if (risultato <= parseInt(ultimaPosizione)){
continue;
}
contaContesti=contaContesti+1;
if (contaContesti >= startcont && contaContesti < endcont){
res.push(risultato)
}
if (contaContesti > endcont)
break;
var versiContesto= getFormaContext(risultato, contextLength);
var ultimaForma=versiContesto.slice(-1)
ultimaPosizione=ultimaForma[0].posizione
}
//ordino la lista dei risultati
res.sort(function(a, b){return a - b});
return (res)
}
function showFrasi (start, offset = showOffset) {
var canto, numeroCantica;
var divVerso;
var elencoRisutati = $("#vistaFrasi");
elencoRisutati.empty();
var numeroRisultato = 0;
var ultimaPosizione = 0;
var numeroVersi;
const intsup =Math.min(start+offset, listarisultati.length)
var resincontext=getResInPage(start, start+offset)
//for (let i=start; i