/** * */ 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') var versiIniziali = $('
') var listaVersi = $('
    ') listaVersi.attr('id', "Frase"+numeroRisultato); versiIniziali.attr('id', "versiFrase"+numeroRisultato); numeroVersi = 0; for (forma of versiContesto){ if (setVersicontesto.size == 0){ numeroCantica=forma.cantica canto=forma.canto } if (!setVersicontesto.has(forma.verso)){ divVerso = createDivVersoLI(forma.cantica, forma.verso, forma.canto) versiIniziali.append(divVerso) listaVersi.append(versiIniziali) elencoRisutati.append(listaVersi) setVersicontesto.add(forma.verso) numeroVersi++; } createSpanFormeNew(forma.testo, forma.catg, 'e'+forma.posizione, forma.periodo, forma.funzperiodo, divVerso) } ultimaPosizione = forma.posizione; if (numeroVersi < contextLength +1) { versiIniziali.attr('posVerso', 1); // inizio o fine canto }else { versiIniziali.attr('posVerso', 9999); } var comandi = $('
    ') comandi.attr('id',"comandiFrase"+numeroRisultato) comandi.attr('class', 'comandi col flex-nowrap d-inline justify-content-between pl-1 pb-2 ml-2 mb-2 border-bottom'); var comandiGrp = $('
    ') comandiGrp.attr('class', 'btn-group flex-nowrap d-inline pr-3 mt-1 mr-3 align-text-bottom'); comandiGrp.attr('role',"group") var spanBadgeExpand = $('