From 478cc9c6cf621d3caeaec8c59aa5e9395f2819d5 Mon Sep 17 00:00:00 2001 From: cesare <cesare@bigeh> Date: Fri, 10 May 2024 13:20:04 +0200 Subject: [PATCH] gestione risultati target Periodo --- js/browseMgr.js | 2328 ++++++++++++++++++++++++----------------------- 1 file changed, 1167 insertions(+), 1161 deletions(-) diff --git a/js/browseMgr.js b/js/browseMgr.js index 2cdd7ed..20ccfdd 100644 --- a/js/browseMgr.js +++ b/js/browseMgr.js @@ -6,193 +6,191 @@ var resetResult; var lsentid; var lisid; -const formaClass='frm' +const formaClass = 'frm' var selectedVista; -var vistaPeriodi=false -var vistaDialoghi=false +var vistaPeriodi = false +var vistaDialoghi = false var listaPeriodiRisultato; var listaClausoleRisultato; var numeroContesti; $(document).ready(function() { - removeGraph=false; - const dialogspeakers={ - "Beatrice":"diaBeatrice", - "Dante":"diaDante", - "Virgilio":"diaVirgilio", - "Cacciaguida":"diaCacciaguida", - "san Bernardo":"diaSanBernardo" + removeGraph = false; + const dialogspeakers = { + "Beatrice": "diaBeatrice", + "Dante": "diaDante", + "Virgilio": "diaVirgilio", + "Cacciaguida": "diaCacciaguida", + "san Bernardo": "diaSanBernardo" } - const dialogaltri='diaAltri' + const dialogaltri = 'diaAltri' + - const cantobadgeclass = 'badge badge-outline-warning 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/commedia/query"; - + var shownSentenceList = new Set() listarisultati = []; listaPeriodiRisultato = []; - listaClausoleRisultato=[] + listaClausoleRisultato = [] var commentsArray = [] var commentsJson = {} var resultSentences = new Set() - const cantiche=["Inferno", "Purgatorio","Paradiso"] - var loadedCanti=new Set(); - const openSTag="{" - const closeSTag="}" - + const 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 contextLength = 3; + var showOffset = 30; var idCitazione = "citazioneFrase"; - + initCitazioni(); - - resetResult=function(){ + + resetResult = function() { //console.log('clean result') cleanSearchResult() esprlogica = [] } - + //hideMinimap(); createAllDivCanti() //const start = performance.now(); - showCanto(formeprima, '1','1') + showCanto(formeprima, '1', '1') $("#InfernoCanto_1").attr('style', 'display: d-flex;') loadedCanti.add("InfernoCanto_1") drawMinimap("#InfernoCanto_1", false) - const minim=$(" .minimap__content") - + const minim = $(" .minimap__content") -$('#opzioniVista :checkbox').change(function() { - changedOption = $(this)[0].id; - switch (changedOption + "|" + this.checked){ - case "visPeriodi|true": - - selectedVista = 'frasi' - //$(cantoDisplayed).attr('style', 'display: d-flex;') - vistaPeriodi=true - loadFrasi(); - break; - case "visPeriodi|false": - $("#vistaFrasi").css("display", "none"); - resetFrasi() - vistaPeriodi=false - //$(cantoDisplayed).attr('style', 'display: d-flex;') - break; - case "visRiferimenti|true": - $(".showcomments").css("display", "inline-block"); - minim.contents().find(" .showcomments").each(function(){ - $(this).css('display', 'inline-block'); - }) - break; - case "visRiferimenti|false": - $(".showcomments").css("display", "none"); - minim.contents().find(" .showcomments").each(function(){ - $(this).css('display', 'none'); - }) - const emptyNoteList = '<div class="card card-body well well-sm m-1 mt-2 p-0" id="noteCard0"><span class="p-3 text-muted bg-lida-vis small" style="opacity: 0.6;">Nessun commento visualizzato</span></div>'; - $('#displaynote').empty() - $('#displaynote').append($(emptyNoteList)) - break; - case "visDialoghi|true": - selectedVista = 'dialoghi' - //resetFrasi() - loadDialoghi(); - vistaDialoghi=true - break; - case "visDialoghi|false": - $("#vistaDialoghi").css("display", "none"); - vistaDialoghi=false - resetDialoghi() - break; - case "visMetafore|true": - //loadMetafore(); - break; - case "visMetafore|false": - $("#vistaMetafore").css("display", "none"); - } -}); + + $('#opzioniVista :checkbox').change(function() { + changedOption = $(this)[0].id; + switch (changedOption + "|" + this.checked) { + case "visPeriodi|true": + + selectedVista = 'frasi' + vistaPeriodi = true + loadFrasi(); + break; + case "visPeriodi|false": + $("#vistaFrasi").css("display", "none"); + resetFrasi() + vistaPeriodi = false + break; + case "visRiferimenti|true": + $(".showcomments").css("display", "inline-block"); + minim.contents().find(" .showcomments").each(function() { + $(this).css('display', 'inline-block'); + }) + break; + case "visRiferimenti|false": + $(".showcomments").css("display", "none"); + minim.contents().find(" .showcomments").each(function() { + $(this).css('display', 'none'); + }) + const emptyNoteList = '<div class="card card-body well well-sm m-1 mt-2 p-0" id="noteCard0"><span class="p-3 text-muted bg-lida-vis small" style="opacity: 0.6;">Nessun commento visualizzato</span></div>'; + $('#displaynote').empty() + $('#displaynote').append($(emptyNoteList)) + break; + case "visDialoghi|true": + selectedVista = 'dialoghi' + //resetFrasi() + loadDialoghi(); + vistaDialoghi = true + break; + case "visDialoghi|false": + $("#vistaDialoghi").css("display", "none"); + vistaDialoghi = false + resetDialoghi() + break; + case "visMetafore|true": + //loadMetafore(); + break; + case "visMetafore|false": + $("#vistaMetafore").css("display", "none"); + } + }); -$(" ."+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 + $(" ." + 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], ele.attr('class').split(' ')[0]);}), - 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} - + ele.tooltip({ + content: (function() { return formatTTContent(ele.attr('title'), ele.attr('class').split(' ')[1], ele.attr('class').split(' ')[0]); }), + 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)){ + $(" ." + formaClass).dblclick(function() { + + var sentenceId = $(this).attr('class').split(' ')[0].replace('$', '') + console.log('dblclick ' + lisid) + if (shownSentenceList.has(sentenceId)) { resetSentenceStructure(sentenceId) shownSentenceList.delete(sentenceId) - + } - else{ + 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 -*/ + + $(" ." + 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 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{ + 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; - } + 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 divVersoExp = '' var setVersicontestoExp = new Set() for (forma of versiContestoExp) { if (!setVersicontestoExp.has(forma.verso)) { @@ -203,334 +201,333 @@ $(" ."+formaClass).hover(function(idx, element) { createSpanFormeNew(forma.testo, forma.catg, 'e' + forma.posizione, forma.periodo, forma.funzperiodo, divVersoExp) posizioniEspansione.push('e' + forma.posizione) } - - if(cid.includes('_er_')){ + + if (cid.includes('_er_')) { ///$("#"+cid).css("display", "none"); - $("#"+cid).removeClass( "btn-outline-primary" ); - $("#"+cid).addClass( "btn-outline-secondary" ); - $("#"+cid).addClass( "disabled" ); + $("#" + cid).removeClass("btn-outline-primary"); + $("#" + cid).addClass("btn-outline-secondary"); + $("#" + cid).addClass("disabled"); } - else{ - cid = cid.replace("ex","er"); + 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" ); + $("#" + cid).removeClass("btn-outline-secondary"); + $("#" + cid).removeClass("disabled"); + $("#" + cid).addClass("btn-outline-primary"); } - - + + //evidenzio risultato - + for (ris of listarisultati) { - idris = '#e' + ris - $(idris).addClass("font-weight-bold mark ") + idris = '#e' + ris + $(idris).addClass("font-weight-bold mark ") } - + //gestisco risultati se unità di ricerca è periodo - if (listaPeriodiRisultato.length){ - for (msid of listaPeriodiRisultato){ + 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('-') + if (listaClausoleRisultato.length) { + for (clsid of listaClausoleRisultato) { + let tmpid = clsid.split('-') //loadFrase(tmpid[0], tmpid[1]) loadClausola(tmpid[0], tmpid[1], tmpid[2], tmpid[3]) - + } } - + //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. + */ /* - * 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) - console.log(vistaPeriodi) - if (vistaPeriodi){ - loadFrasi(); - } - if (vistaDialoghi){ - loadDialoghi(); - } - addFormaListenersInCanto() - drawMinimap('#vistaFrasi', false) - + 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) + console.log(vistaPeriodi) + if (vistaPeriodi) { + loadFrasi(); + } + if (vistaDialoghi) { + loadDialoghi(); + } + addFormaListenersInCanto() + drawMinimap('#vistaFrasi', false) + } - - function countResultContexts(){ + + function countResultContexts() { var numeroRisultati = 0; var ultimaPosizione = -1; - for (risultato of listarisultati){ - if (risultato <= parseInt(ultimaPosizione)){ - continue; + 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 + numeroRisultati = numeroRisultati + 1; + var versiContesto = getFormaContext(risultato, contextLength); + var ultimaForma = versiContesto.slice(-1) + ultimaPosizione = ultimaForma[0].posizione } - console.log('N. contesti: '+numeroRisultati) - numeroContesti=numeroRisultati + console.log('N. contesti: ' + numeroRisultati) + numeroContesti = numeroRisultati return (numeroRisultati) } - - function getResInPage(startcont, endcont){ + + function getResInPage(startcont, endcont) { var res = []; var ultimaPosizione = -1; - var contaContesti=0 - for (risultato of listarisultati){ - if (risultato <= parseInt(ultimaPosizione)){ - continue; + var contaContesti = 0 + for (risultato of listarisultati) { + if (risultato <= parseInt(ultimaPosizione)) { + continue; } - contaContesti=contaContesti+1; - if (contaContesti >= startcont && contaContesti < endcont){ + 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 + 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}); + 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<intsup; i++){ - for (let i=0; i<resincontext.length; i++){ - //risultato = listarisultati[i]; - risultato = resincontext[i]; - numeroRisultato++; - risultato = parseInt(risultato) - if (risultato <= parseInt(ultimaPosizione)){ - continue; - } - var versiContesto= getFormaContext(risultato, contextLength); - var setVersicontesto = new Set() - divVerso ='' - numeroCantica=0 - canto=0 - //var titoloCanto = $('<h5 class="titolo-canto"/>') - var versiIniziali = $('<div class="versiFrase mt-3" />') - var listaVersi = $('<ol class="pt-3" />') - - 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 = $('<div />') - 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'); + function showFrasi(start, offset = showOffset) { + var canto, numeroCantica; + var divVerso; + var elencoRisutati = $("#vistaFrasi"); + elencoRisutati.empty(); - var comandiGrp = $('<div />') - comandiGrp.attr('class', 'btn-group flex-nowrap d-inline pr-3 mt-1 mr-3 align-text-bottom'); - comandiGrp.attr('role',"group") - - var spanBadgeExpand = $('<button />'); - var expandIcon = '<ion-icon name="expand-outline"></ion-icon>'; - spanBadgeExpand.attr('class', 'btn btn-sm btn-outline-primary espandiFrase px-1 pt-1 pb-0'); - var spanBadgeReduce = $('<button />'); - var reduceIcon = '<ion-icon name="contract-outline"></ion-icon>'; - - spanBadgeReduce.attr('class', 'btn btn-sm btn-outline-secondary riduciFrase px-1 pt-1 pb-0 ml-1 disabled'); - - spanBadgeExpand.attr('id', getCantica(numeroCantica)+"Canto_ex_"+canto+"_"+risultato+"_"+numeroRisultato); - spanBadgeExpand.append(expandIcon); - - spanBadgeReduce.attr('id', getCantica(numeroCantica)+"Canto_er_"+canto+"_"+risultato+"_"+numeroRisultato); - spanBadgeReduce.append(reduceIcon) - - spanBadgeExpand.appendTo(comandiGrp); - spanBadgeReduce.appendTo(comandiGrp); - - comandiGrp.appendTo(comandi); - - - var citazioneDiv = $('<div />') - citazioneDiv.attr('class', ' text-right flex-nowrap d-inline ml-3 px-3 py-0'); - var citazione = $('<span />') - citazione.append("["+getCantica(numeroCantica)+", Canto "+getRoman(canto)+"]") - citazione.attr('class', ' pl-3 citazioneFrase align-text-top'); - citazione.attr('name', getCantica(numeroCantica)+"Canto "+canto); - citazione.attr('id', idCitazione+'_'+numeroRisultato+'_'+risultato); - citazione.appendTo(citazioneDiv); - - citazioneDiv.appendTo(comandi); - - comandi.appendTo(elencoRisutati); - + 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<intsup; i++){ + for (let i = 0; i < resincontext.length; i++) { + //risultato = listarisultati[i]; + risultato = resincontext[i]; + numeroRisultato++; + risultato = parseInt(risultato) + if (risultato <= parseInt(ultimaPosizione)) { + continue; } - - //evidenzio resultati - - for (ris of listarisultati) { - idris = '#e' + ris - $(idris).addClass("font-weight-bold mark ") - } - - //evidenzio i periodi se unità di ricerca è impostato come periodo - if (listaPeriodiRisultato.length){ - for (msid of listaPeriodiRisultato){ - loadPeriodo(msid) - + var versiContesto = getFormaContext(risultato, contextLength); + var setVersicontesto = new Set() + divVerso = '' + numeroCantica = 0 + canto = 0 + //var titoloCanto = $('<h5 class="titolo-canto"/>') + var versiIniziali = $('<div class="versiFrase mt-3" />') + var listaVersi = $('<ol class="pt-3" />') + + 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 } - - } - //evidenzio le frasi se unità di ricerca è frase - if (listaClausoleRisultato.length){ - for (clsid of listaClausoleRisultato){ - let tmpid=clsid.split('-') - //loadFrase(tmpid[0], tmpid[1]) - loadClausola(tmpid[0], tmpid[1], tmpid[2], tmpid[3]) - + 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 = $('<div />') + 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 = $('<div />') + comandiGrp.attr('class', 'btn-group flex-nowrap d-inline pr-3 mt-1 mr-3 align-text-bottom'); + comandiGrp.attr('role', "group") + + var spanBadgeExpand = $('<button />'); + var expandIcon = '<ion-icon name="expand-outline"></ion-icon>'; + spanBadgeExpand.attr('class', 'btn btn-sm btn-outline-primary espandiFrase px-1 pt-1 pb-0'); + var spanBadgeReduce = $('<button />'); + var reduceIcon = '<ion-icon name="contract-outline"></ion-icon>'; + + spanBadgeReduce.attr('class', 'btn btn-sm btn-outline-secondary riduciFrase px-1 pt-1 pb-0 ml-1 disabled'); + + spanBadgeExpand.attr('id', getCantica(numeroCantica) + "Canto_ex_" + canto + "_" + risultato + "_" + numeroRisultato); + spanBadgeExpand.append(expandIcon); + + spanBadgeReduce.attr('id', getCantica(numeroCantica) + "Canto_er_" + canto + "_" + risultato + "_" + numeroRisultato); + spanBadgeReduce.append(reduceIcon) + + spanBadgeExpand.appendTo(comandiGrp); + spanBadgeReduce.appendTo(comandiGrp); + + comandiGrp.appendTo(comandi); + + + var citazioneDiv = $('<div />') + citazioneDiv.attr('class', ' text-right flex-nowrap d-inline ml-3 px-3 py-0'); + var citazione = $('<span />') + citazione.append("[" + getCantica(numeroCantica) + ", Canto " + getRoman(canto) + "]") + citazione.attr('class', ' pl-3 citazioneFrase align-text-top'); + citazione.attr('name', getCantica(numeroCantica) + "Canto " + canto); + citazione.attr('id', idCitazione + '_' + numeroRisultato + '_' + risultato); + citazione.appendTo(citazioneDiv); + + citazioneDiv.appendTo(comandi); + + comandi.appendTo(elencoRisutati); + + } + + //evidenzio resultati + + for (ris of listarisultati) { + idris = '#e' + ris + $(idris).addClass("font-weight-bold mark ") + } + + //evidenzio i periodi se unità di ricerca è impostato come periodo + if (listaPeriodiRisultato.length) { + for (msid of listaPeriodiRisultato) { + loadPeriodo(msid) + + } + + } + //evidenzio le frasi se unità di ricerca è frase + if (listaClausoleRisultato.length) { + for (clsid of listaClausoleRisultato) { + let tmpid = clsid.split('-') + //loadFrase(tmpid[0], tmpid[1]) + loadClausola(tmpid[0], tmpid[1], tmpid[2], tmpid[3]) + + } + } + + } jQuery(document).delegate('.navig-canto, .citazioneFrase', 'click', function(e) { resetFrasi() - + //nasconde vista risultati $("#vistaFrasi").css("display", "none"); - + //rimuove il grafo sintattico se c'è' resetGraphStruct() emptyStructCard() - - + + $(cantoDisplayed).css("display", "none"); - - const cid=$(this).attr('name').replace(" ", "_"); - - cantoDisplayed = "#"+cid; + + const cid = $(this).attr('name').replace(" ", "_"); + + cantoDisplayed = "#" + cid; initCitazioni() - var parcid=cid.split('_') - - if ( !(loadedCanti.has(cid))) - { - if(parcid[0].includes('Inferno')) - showCanto(formeprima, '1',parcid[1]) - if(parcid[0].includes('Purgatorio')) - showCanto(formeseconda, '2',parcid[1]) - if(parcid[0].includes('Paradiso')) - showCanto(formeterza, '3',parcid[1]) + var parcid = cid.split('_') + + if (!(loadedCanti.has(cid))) { + if (parcid[0].includes('Inferno')) + showCanto(formeprima, '1', parcid[1]) + if (parcid[0].includes('Purgatorio')) + showCanto(formeseconda, '2', parcid[1]) + if (parcid[0].includes('Paradiso')) + showCanto(formeterza, '3', parcid[1]) loadedCanti.add(cid) } //$("#" + $(this).attr('name').replace(" ", "_")).css("display", "block"); $("#" + $(this).attr('name').replace(" ", "_")).attr('style', 'display: d-flex;') - - - + + + drawMinimap("#" + $(this).attr('name').replace(" ", "_"), false) - + console.log(vistaPeriodi) - if (vistaPeriodi){ + if (vistaPeriodi) { loadFrasi(); } - if (vistaDialoghi){ + if (vistaDialoghi) { loadDialoghi(); } - + addFormaListenersInCanto(); - + //se si sta arrivando al canto da un link della lista risultati - const callerid=$(this).attr('id'); - if (callerid!=null && callerid.startsWith(idCitazione)){ - const mypos=callerid.split('_')[2] - latestPhraseId = callerid.split('_')[0].replace("citazione", "")+callerid.split('_')[1]; - $("#collapse"+parcid[0].replace("Canto", "")).collapse('show'); - document.getElementById(mypos).scrollIntoView({ - behavior: "smooth", - }); - + const callerid = $(this).attr('id'); + if (callerid != null && callerid.startsWith(idCitazione)) { + const mypos = callerid.split('_')[2] + latestPhraseId = callerid.split('_')[0].replace("citazione", "") + callerid.split('_')[1]; + $("#collapse" + parcid[0].replace("Canto", "")).collapse('show'); + document.getElementById(mypos).scrollIntoView({ + behavior: "smooth", + }); + } - - + + }); - + //Query jQuery(document).delegate('#searchcomm, #searchcomm2', 'click', function(e) { e.preventDefault(); manageQuery() }); - + //Reset @@ -541,24 +538,24 @@ $(" ."+formaClass).hover(function(idx, element) { $('#queryText').val("") }); - + //Utility functions - - - - function addFormaListenersInCanto(){ - let idn=0 + + + + function addFormaListenersInCanto() { + let idn = 0 $(cantoDisplayed).find(" ." + formaClass).each(function(idx, element) { - idn=idn+1 + idn = idn + 1 var ele = $(element); - + $(element).tooltip({ content: (function() { return formatTTContent(ele.attr('title'), ele.attr('class').split(' ')[1], ele.attr('class').split(' ')[0]); }), 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} + show: { delay: 800, duration: 0 } }); $(element).hover(function(idx, element) { @@ -574,264 +571,265 @@ $(" ."+formaClass).hover(function(idx, element) { //console.log('nr forme '+idn) } - - + + function getRoman(numero) { - - var romani = ["I","II","III","IV","V","VI","VII","VIII","IX","X", - "XI","XII","XIII","XIV","XV","XVI","XVII","XVIII","XIX","XX", - "XXI","XXII","XXIII","XXIV","XXV","XXVI","XXVII","XXVIII","XXIX","XXX", - "XXXI","XXXII","XXXIII","XXXIV"]; - return (romani[numero-1]); - -} -function getNumCurrentCantica(){ - - var mcanto=cantoDisplayed.replace("#",'') - var cantica='' - if (mcanto.startsWith('Inf')) - cantica='1' - if (mcanto.startsWith('Pur')) - cantica='2' - if (mcanto.startsWith('Par')) - cantica='3' - - return(cantica+'_'+mcanto.split('_')[1]) -} + var romani = ["I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX", "X", + "XI", "XII", "XIII", "XIV", "XV", "XVI", "XVII", "XVIII", "XIX", "XX", + "XXI", "XXII", "XXIII", "XXIV", "XXV", "XXVI", "XXVII", "XXVIII", "XXIX", "XXX", + "XXXI", "XXXII", "XXXIII", "XXXIV"]; + return (romani[numero - 1]); -function loadPeriodo(idperiodo) { - - - //if(idperiodo.split('_')[0]+'_'+idperiodo.split('_')[1]!=getNumCurrentCantica()) - if (!isPeriodoInCanto(idperiodo, cantoDisplayed)){ - //console.log(idperiodo.split('_')[0]+'_'+idperiodo.split('_')[1]+', '+getNumCurrentCantica()) - return } - - $(cantoDisplayed).find(' .'+idperiodo).each(function() { - var pstp=$(this).attr('class').split(" ")[1] - $(this).css('color', colorssp(mapsynttypestopalette[pstp])); - }) - - minim.contents().find(' .'+idperiodo).each(function() { - var mpstp=$(this).attr('class').split(" ")[1] + function getNumCurrentCantica() { - $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); - }) -} + var mcanto = cantoDisplayed.replace("#", '') + var cantica = '' + if (mcanto.startsWith('Inf')) + cantica = '1' + if (mcanto.startsWith('Pur')) + cantica = '2' + if (mcanto.startsWith('Par')) + cantica = '3' -function isPeriodoInCanto(idperiodo, canto){ - datiperiodo=idperiodo.split('_') - daticanto=canto.split('_') - canticaprd=datiperiodo[0] - cantoprd=datiperiodo[1] - if(canticaprd=='1' && daticanto[0].includes('Inferno')) - return(cantoprd==daticanto[1]) - if(canticaprd=='2' && daticanto[0].includes('Purgatorio')) - return(cantoprd==daticanto[1]) - if(canticaprd=='3' && daticanto[0].includes('Paradiso')) - return(cantoprd==daticanto[1]) - return false -} + return (cantica + '_' + mcanto.split('_')[1]) + } -function loadFrase(idperiodo, funzionefrase) { - - if (!isPeriodoInCanto(idperiodo, cantoDisplayed)) - return - - $(cantoDisplayed).find(' .'+idperiodo).each(function() { - var pstp=$(this).attr('class').split(" ")[1] + function loadPeriodo(idperiodo) { - if(pstp.trim()==funzionefrase) - $(this).css('color', colorssp(mapsynttypestopalette[pstp])); - }) - - minim.contents().find(' .'+idperiodo).each(function() { - var mpstp=$(this).attr('class').split(" ")[1] - if(mpstp.trim()==funzionefrase) - $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); - }) -} -function loadClausola(idperiodo, funzionefrase, fromn, ton) { - - if (!isPeriodoInCanto(idperiodo, cantoDisplayed)) - return - - $(cantoDisplayed).find(' .'+idperiodo).each(function() { - if (parseInt($(this).attr('id'))>=parseInt(fromn) - && parseInt($(this).attr('id'))<=parseInt(ton)){ - var pstp=$(this).attr('class').split(" ")[1] + //if(idperiodo.split('_')[0]+'_'+idperiodo.split('_')[1]!=getNumCurrentCantica()) + if (!isPeriodoInCanto(idperiodo, cantoDisplayed)) { + return + } - if(pstp.trim()==funzionefrase) + $(cantoDisplayed).find(' .' + idperiodo).each(function() { + var pstp = $(this).attr('class').split(" ")[1] + if (pstp=='sentencetag') + $(this).attr('style', 'display: d-flex;'); + //$(this).css('color', colorssp(mapsynttypestopalette[pstp])); + }) + + minim.contents().find(' .' + idperiodo).each(function() { + var mpstp = $(this).attr('class').split(" ")[1] + if (mpstp=='sentencetag') + $(this).attr('style', 'display: d-flex;'); + //$(this).css('color', colorssp(mapsynttypestopalette[mpstp])); + }) + } + + function isPeriodoInCanto(idperiodo, canto) { + datiperiodo = idperiodo.split('_') + daticanto = canto.split('_') + canticaprd = datiperiodo[0] + cantoprd = datiperiodo[1] + if (canticaprd == '1' && daticanto[0].includes('Inferno')) + return (cantoprd == daticanto[1]) + if (canticaprd == '2' && daticanto[0].includes('Purgatorio')) + return (cantoprd == daticanto[1]) + if (canticaprd == '3' && daticanto[0].includes('Paradiso')) + return (cantoprd == daticanto[1]) + return false + } + + function loadFrase(idperiodo, funzionefrase) { + + if (!isPeriodoInCanto(idperiodo, cantoDisplayed)) + return + + $(cantoDisplayed).find(' .' + idperiodo).each(function() { + var pstp = $(this).attr('class').split(" ")[1] + + if (pstp.trim() == funzionefrase) $(this).css('color', colorssp(mapsynttypestopalette[pstp])); - } - - }) - - minim.contents().find(' .'+idperiodo).each(function() { - if (parseInt($(this).attr('id'))>=parseInt(fromn) - && parseInt($(this).attr('id'))<=parseInt(ton)){ - var mpstp=$(this).attr('class').split(" ")[1] - if(mpstp.trim()==funzionefrase) - $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); - } - - }) -} - - -function loadDialoghi() { - var aca='3' - if (cantoDisplayed.includes('Inferno')) - aca='1' - if (cantoDisplayed.includes('Purgatorio')) - aca='2' - for (const india in dialoghi){ - //console.log(dialoghi[india]['Cnt'].replace('_so','')) - var diaclass=dialoghi[india]['Cnt'].replace('_so','') - var authclass=dialoghi[india]['Cnt']; - if(diaclass.split('_')[1]!=cantoDisplayed.split('_')[1]) - continue; - if(diaclass.split('_')[0]!=aca) - continue; - var csscl=dialogaltri - if (dialoghi[india]['Spna'] in dialogspeakers){ - csscl=dialogspeakers[dialoghi[india]['Spna']] - } - - - $(cantoDisplayed).find(' .'+diaclass).each(function() { - $(this).addClass(csscl) - }) - $(cantoDisplayed).find(' .'+authclass).each(function() { - //$(this).addClass(csscl) + + minim.contents().find(' .' + idperiodo).each(function() { + var mpstp = $(this).attr('class').split(" ")[1] + if (mpstp.trim() == funzionefrase) + $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); + }) + } + + function loadClausola(idperiodo, funzionefrase, fromn, ton) { + + if (!isPeriodoInCanto(idperiodo, cantoDisplayed)) + return + + $(cantoDisplayed).find(' .' + idperiodo).each(function() { + if (parseInt($(this).attr('id')) >= parseInt(fromn) + && parseInt($(this).attr('id')) <= parseInt(ton)) { + var pstp = $(this).attr('class').split(" ")[1] + + if (pstp.trim() == funzionefrase) + $(this).css('color', colorssp(mapsynttypestopalette[pstp])); + } + + }) + + minim.contents().find(' .' + idperiodo).each(function() { + if (parseInt($(this).attr('id')) >= parseInt(fromn) + && parseInt($(this).attr('id')) <= parseInt(ton)) { + var mpstp = $(this).attr('class').split(" ")[1] + if (mpstp.trim() == funzionefrase) + $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); + } + + }) + } + + + function loadDialoghi() { + var aca = '3' + if (cantoDisplayed.includes('Inferno')) + aca = '1' + if (cantoDisplayed.includes('Purgatorio')) + aca = '2' + for (const india in dialoghi) { + //console.log(dialoghi[india]['Cnt'].replace('_so','')) + var diaclass = dialoghi[india]['Cnt'].replace('_so', '') + var authclass = dialoghi[india]['Cnt']; + if (diaclass.split('_')[1] != cantoDisplayed.split('_')[1]) + continue; + if (diaclass.split('_')[0] != aca) + continue; + var csscl = dialogaltri + if (dialoghi[india]['Spna'] in dialogspeakers) { + csscl = dialogspeakers[dialoghi[india]['Spna']] + } + + + $(cantoDisplayed).find(' .' + diaclass).each(function() { + $(this).addClass(csscl) + + }) + $(cantoDisplayed).find(' .' + authclass).each(function() { + //$(this).addClass(csscl) + $(this).attr('style', 'display: d-flex;'); + + }) + minim.contents().find(' .' + diaclass).each(function() { + $(this).addClass(csscl) + + }) + + } + emphResults() + } + function loadFrasi() { + + $(cantoDisplayed).find(' .sentencetag').each(function() { $(this).attr('style', 'display: d-flex;'); - }) - minim.contents().find(' .'+diaclass).each(function() { - $(this).addClass(csscl) - + $(cantoDisplayed).find(' .' + formaClass).each(function() { + stp = $(this).attr('class').split(" ")[1] + + $(this).css('color', colorssp(mapsynttypestopalette[stp])); }) - - } - emphResults() -} -function loadFrasi() { - - $(cantoDisplayed).find(' .sentencetag').each(function() { - $(this).attr('style', 'display: d-flex;'); - }) - $(cantoDisplayed).find(' .'+formaClass).each(function() { - stp=$(this).attr('class').split(" ")[1] - - $(this).css('color', colorssp(mapsynttypestopalette[stp])); - }) - //let minim=$(" .minimap__content") - minim.contents().find(" .sentencetag").each(function(){ - $(this).attr('style', 'display: d-flex;'); - }) - minim.contents().find(' .'+formaClass).each(function() { - stp=$(this).attr('class').split(" ")[1] - - $(this).css('color', colorssp(mapsynttypestopalette[stp])); - }) -} -function resetDialoghi(){ - - for (mk in dialogspeakers){ - //console.log (mk+' '+dialogspeakers[mk]) - $(cantoDisplayed).find(' .'+dialogspeakers[mk]).each(function() { - $(this).removeClass(dialogspeakers[mk]); + //let minim=$(" .minimap__content") + minim.contents().find(" .sentencetag").each(function() { + $(this).attr('style', 'display: d-flex;'); }) - minim.contents().find(' .'+dialogspeakers[mk]).each(function(){ - $(this).removeClass(dialogspeakers[mk]); + minim.contents().find(' .' + formaClass).each(function() { + stp = $(this).attr('class').split(" ")[1] + + $(this).css('color', colorssp(mapsynttypestopalette[stp])); }) } - $(cantoDisplayed).find(' .'+dialogaltri).each(function() { - $(this).removeClass(dialogaltri); - }) - minim.contents().find(' .'+dialogaltri).each(function(){ - $(this).removeClass(dialogaltri); - }) - emphResults() -} + function resetDialoghi() { -function resetFrasi(){ - - $(cantoDisplayed).find(' .sentencetag').each(function() { - $(this).css('display', 'none'); - }) - - - $(cantoDisplayed).find(' .'+formaClass).each(function() { - //console.log(colorssp(mapsynttypestopalette[stp])) - $(this).css('color', ''); - $(this).removeClass('font-weight-bold') - }) - - minim.contents().find(" .sentencetag").each(function(){ - $(this).css('display', 'none'); - }) - minim.contents().find(' .'+formaClass).each(function() { - $(this).css('color', ''); - $(this).removeClass('font-weight-bold') - }) - - - //cancello il grafo sintattico - resetGraphStruct() - emptyStructCard() - emphResults() -} -//visualizzazione risultati -function emphResults(){ - - //evidenzio i periodi se unità di ricerca è impostato come periodo - if (listaPeriodiRisultato.length) { - for (msid of listaPeriodiRisultato) { - //if (isPeriodoInCanto(msid, cantoDisplayed)) + for (mk in dialogspeakers) { + //console.log (mk+' '+dialogspeakers[mk]) + $(cantoDisplayed).find(' .' + dialogspeakers[mk]).each(function() { + $(this).removeClass(dialogspeakers[mk]); + }) + minim.contents().find(' .' + dialogspeakers[mk]).each(function() { + $(this).removeClass(dialogspeakers[mk]); + }) + } + $(cantoDisplayed).find(' .' + dialogaltri).each(function() { + $(this).removeClass(dialogaltri); + }) + minim.contents().find(' .' + dialogaltri).each(function() { + $(this).removeClass(dialogaltri); + }) + emphResults() + } + + function resetFrasi() { + + $(cantoDisplayed).find(' .sentencetag').each(function() { + $(this).css('display', 'none'); + }) + + + $(cantoDisplayed).find(' .' + formaClass).each(function() { + //console.log(colorssp(mapsynttypestopalette[stp])) + $(this).css('color', ''); + $(this).removeClass('font-weight-bold') + }) + + minim.contents().find(" .sentencetag").each(function() { + $(this).css('display', 'none'); + }) + minim.contents().find(' .' + formaClass).each(function() { + $(this).css('color', ''); + $(this).removeClass('font-weight-bold') + }) + + + //cancello il grafo sintattico + resetGraphStruct() + emptyStructCard() + emphResults() + } + //visualizzazione risultati + function emphResults() { + + //evidenzio i periodi se unità di ricerca è impostato come periodo + if (listaPeriodiRisultato.length) { + for (msid of listaPeriodiRisultato) { + //if (isPeriodoInCanto(msid, cantoDisplayed)) loadPeriodo(msid) - } + } - } - //evidenzio le frasi se unità di ricerca è frase - if (listaClausoleRisultato.length) { - for (clsid of listaClausoleRisultato) { - if (isPeriodoInCanto(clsid, cantoDisplayed)){ - let tmpid = clsid.split('-') - //loadFrase(tmpid[0], tmpid[1]) - loadClausola(tmpid[0], tmpid[1], tmpid[2], tmpid[3]) + } + //evidenzio le frasi se unità di ricerca è frase + if (listaClausoleRisultato.length) { + for (clsid of listaClausoleRisultato) { + if (isPeriodoInCanto(clsid, cantoDisplayed)) { + let tmpid = clsid.split('-') + //loadFrase(tmpid[0], tmpid[1]) + loadClausola(tmpid[0], tmpid[1], tmpid[2], tmpid[3]) + } } } + } + /*INIZIO GESTIONE CITAZIONI*/ -} -/*INIZIO GESTIONE CITAZIONI*/ - - function initCitazioni(){ + function initCitazioni() { //"#InfernoCanto_1" //console.log('VISTA CITAZIONI!') - var mcanto=cantoDisplayed.replace("#",'') - cantica='' + var mcanto = cantoDisplayed.replace("#", '') + cantica = '' if (mcanto.startsWith('Inf')) - cantica='Inferno' + cantica = 'Inferno' if (mcanto.startsWith('Pur')) - cantica='Purgatorio' + cantica = 'Purgatorio' if (mcanto.startsWith('Par')) - cantica='Paradiso' - canto=mcanto.split('_')[1] - if (canto.length==1) - canto='0'+canto - - commentsArray=getVersiConCitazioni(cantica, canto) - commentsJson=getVersiConCitazioniJson (cantica, canto) + cantica = 'Paradiso' + canto = mcanto.split('_')[1] + if (canto.length == 1) + canto = '0' + canto + + commentsArray = getVersiConCitazioni(cantica, canto) + commentsJson = getVersiConCitazioniJson(cantica, canto) commentsArray.forEach(removeHtmlTags2) - + var numVerso1; var numVerso2; var versoCitazione; @@ -839,77 +837,77 @@ function emphResults(){ commentsArray.sort((p1, p2) => { numVerso1 = p1.verso; numVerso2 = p2.verso; - versoCitazione = (p1.VersoCitazione).replaceAll("-",""); + versoCitazione = (p1.VersoCitazione).replaceAll("-", ""); numVerso1 = numVerso1 + versoCitazione; - versoCitazione = (p2.VersoCitazione).replaceAll("-",""); + versoCitazione = (p2.VersoCitazione).replaceAll("-", ""); numVerso2 = numVerso2 + versoCitazione; - numVerso2 = parseInt(numVerso2.replaceAll("_","")); - numVerso1 = parseInt(numVerso1.replaceAll("_","")); + numVerso2 = parseInt(numVerso2.replaceAll("_", "")); + numVerso1 = parseInt(numVerso1.replaceAll("_", "")); if (numVerso1 < numVerso2) return -1; if (numVerso1 > numVerso2) return 1; return 0; }); } - /* Luca: removeHtmlTags2 e' la versione compatta di removeHtmlTags*/ - function removeHtmlTags2(value){ + /* Luca: removeHtmlTags2 e' la versione compatta di removeHtmlTags*/ + function removeHtmlTags2(value) { var text = "" for (const key in value) { text = `${value[key]}` - if (text != null){ + if (text != null) { text = text.replace(/<(.|\n)*?>/g, ''); - text = text.replace("«",""); - text = text.replace("»",""); + text = text.replace("«", ""); + text = text.replace("»", ""); text = text.replace(/[\r\n]+/gm, ' '); value[`${key}`] = text; } } } - - - function removeHtmlTags(value){ + + + function removeHtmlTags(value) { var text = value; - if (text != null){ - text = text.replace(/<(.|\n)*?>/g, ''); - text = text.replace("«",""); - text = text.replace("»",""); - text = text.replace(/\ /g, ' '); - text = text.replace(/[\r\n]+/gm, ' '); - return text; - } + if (text != null) { + text = text.replace(/<(.|\n)*?>/g, ''); + text = text.replace("«", ""); + text = text.replace("»", ""); + text = text.replace(/\ /g, ' '); + text = text.replace(/[\r\n]+/gm, ' '); + return text; + } } - + jQuery(document).delegate(' .showcomments', 'click', function() { var cid = $(this).attr('id'); - if(!hasCommentsJson(cid)){ + if (!hasCommentsJson(cid)) { return } - var parcid=cid.split('_') + var parcid = cid.split('_') var cantica; - switch (parcid[1]){ - case "1": cantica = "Inferno"; - break; - case "2": cantica = "Purgatorio"; - break; - case "3": cantica = "Paradiso"; + switch (parcid[1]) { + case "1": cantica = "Inferno"; + break; + case "2": cantica = "Purgatorio"; + break; + case "3": cantica = "Paradiso"; } var commentArea = $('#displaynote'); commentArea.empty() - if ($('#noteCard0').length ) { + if ($('#noteCard0').length) { $("#noteCard0")[0].remove(); } - var id = cid.substr(9); + var id = cid.substr(9); var collapseNote; var gruppoVersi; var versText = ""; //var saveVersoCitazione = ""; var allGrouplKeys = Object.keys(commentsJson); var currentGroup; - - allGrouplKeys.sort().some(function(k){ - if (k==id || ~k.indexOf(id+'-')){ + + allGrouplKeys.sort().some(function(k) { + if (k == id || ~k.indexOf(id + '-')) { //console.log('gruppo commenti '+k) - console.log (commentsJson[k].length) + console.log(commentsJson[k].length) gruppoVersi = k.split("_").slice(-1)[0] if (gruppoVersi.includes("-")) { versText = ", Versi " + gruppoVersi; @@ -917,13 +915,13 @@ function emphResults(){ versText = ", Verso " + gruppoVersi; } currentGroup = createNoteGroup(cantica, getRoman(parcid[2]), versText, k, commentsJson[k].length) - commentsJson[k].forEach(function (value, i) { - currentGroup.append(createNoteEntry(value,k,i)) + commentsJson[k].forEach(function(value, i) { + currentGroup.append(createNoteEntry(value, k, i)) }); commentArea.append(currentGroup); } $('#tab-list #vis0-tab').tab('show') - }) + }) }) @@ -932,9 +930,9 @@ function emphResults(){ var commentHeader = $('<div class="d-flex align-content-start flex-nowrap text-muted" id="commentoGruppoVersi' + id + '">') var rigaNota = $('<div class="p-0 m-0">'); var buttons = $('<div class="d-flex flex-wrap-reverse ml-auto align-items-center justify-content-end px-1 pt-1 pb-0">') - var closeButton = $('<button id="closeNote'+id+'"'+ - 'class="btn btn-sm btn-outline-warning btn-outline-warning-mod closeNote rounded text-warning align-self-end px-1 pb-0 ml-1 mb-1">'+ - '<ion-icon name="close-circle"></ion-icon>'); + var closeButton = $('<button id="closeNote' + id + '"' + + 'class="btn btn-sm btn-outline-warning btn-outline-warning-mod closeNote rounded text-warning align-self-end px-1 pb-0 ml-1 mb-1">' + + '<ion-icon name="close-circle"></ion-icon>'); closeButton.appendTo(buttons); if (len > 1) { var commentiSP = " commenti su " @@ -949,90 +947,90 @@ function emphResults(){ return noteGroupCard; } - - function createNoteEntry(comments,id,pos) { - var noteCard = $('<div class="card card-body well well-sm mx-1 mb-1 mt-0 p-0 border-lida08" id="noteCard' + id + '_' + pos + '">'); + + function createNoteEntry(comments, id, pos) { + var noteCard = $('<div class="card card-body well well-sm mx-1 mb-1 mt-0 p-0 border-lida08" id="noteCard' + id + '_' + pos + '">'); //var noteCard = $('<div class="card card-body well well-sm m-1 mt-2 p-0" id="noteCard' + id + '">'); //var collapseCardBody = $('<div class="card-body px-0 py-2 mx-1 mb-1 mt-0 border-top rounded" >'); var collapseCardBody = $('<div class="card-body px-0 py-1 mx-3 my-0 border-top rounded" >'); var divCampiSingoli = $('<div class="d-flex align-content-start flex-wrap text-muted">'); //createNoteHeader(noteCard, comments, id, pos, cantica, parcid, saveVersoCitazione); - createNoteHeader(noteCard, comments, id, pos); - - collapseNote = $('<div class="collapse show">'); - collapseNote.attr('id',"collapseNote"+id+ '_' + pos) + createNoteHeader(noteCard, comments, id, pos); - if (comments.TestoFonteCitazione != null && comments.TestoFonteCitazione != "nan"){ - createModule(collapseCardBody,"Testo della fonte: ", removeHtmlTags(comments.TestoFonteCitazione), "1", id, pos) - } - if (comments.NaturaRiferimento != null){ - createDivSingola(divCampiSingoli, "Tipo di riferimento: ", comments.NaturaRiferimento, false) - divCampiSingoli.appendTo(collapseCardBody); - if (comments.NaturaRiferimento == "CITAZIONE" || comments.NaturaRiferimento == "LOCI PARALLELI" ){ - if (comments.TipoCitazione != null && comments.TipoCitazione != ""){ - createDivSingola(divCampiSingoli, "Tipo citazione: ", comments.TipoCitazione, false) - divCampiSingoli.appendTo(collapseCardBody); - } - appendSpecifica(comments,divCampiSingoli,collapseCardBody) + collapseNote = $('<div class="collapse show">'); + collapseNote.attr('id', "collapseNote" + id + '_' + pos) + + if (comments.TestoFonteCitazione != null && comments.TestoFonteCitazione != "nan") { + createModule(collapseCardBody, "Testo della fonte: ", removeHtmlTags(comments.TestoFonteCitazione), "1", id, pos) + } + if (comments.NaturaRiferimento != null) { + createDivSingola(divCampiSingoli, "Tipo di riferimento: ", comments.NaturaRiferimento, false) + divCampiSingoli.appendTo(collapseCardBody); + if (comments.NaturaRiferimento == "CITAZIONE" || comments.NaturaRiferimento == "LOCI PARALLELI") { + if (comments.TipoCitazione != null && comments.TipoCitazione != "") { + createDivSingola(divCampiSingoli, "Tipo citazione: ", comments.TipoCitazione, false) + divCampiSingoli.appendTo(collapseCardBody); } - } - if (comments.RapportoSoggettoOggetto != null){ - createDivSingola(divCampiSingoli, "Rapporto testo/fonte: ", comments.RapportoSoggettoOggetto, false) - divCampiSingoli.appendTo(collapseCardBody); + appendSpecifica(comments, divCampiSingoli, collapseCardBody) } - if (comments.RapportoCommentoCommentatoreText != null && comments.RapportoCommentoCommentatoreText != "nan"){ - createModuleCommentatore (collapseCardBody, comments.RapportoCommentoCommentatoreText, "5", id, pos) + } + if (comments.RapportoSoggettoOggetto != null) { + createDivSingola(divCampiSingoli, "Rapporto testo/fonte: ", comments.RapportoSoggettoOggetto, false) + divCampiSingoli.appendTo(collapseCardBody); + } + if (comments.RapportoCommentoCommentatoreText != null && comments.RapportoCommentoCommentatoreText != "nan") { + createModuleCommentatore(collapseCardBody, comments.RapportoCommentoCommentatoreText, "5", id, pos) + } + if (comments.frammentoNota != null && comments.frammentoNota != "nan" && comments.annotazione != null && comments.annotazione != "nan") { + createModuleFrammAnnot(collapseCardBody, removeHtmlTags(comments.frammentoNota), removeHtmlTags(comments.annotazione), "6", id, pos) + } else { + if (comments.frammentoNota != null && comments.frammentoNota != "nan") { + createModule(collapseCardBody, "Nota: ", removeHtmlTags(comments.frammentoNota), "6", id, pos) } - if (comments.frammentoNota != null && comments.frammentoNota != "nan" && comments.annotazione != null && comments.annotazione != "nan") { - createModuleFrammAnnot(collapseCardBody, removeHtmlTags(comments.frammentoNota), removeHtmlTags(comments.annotazione), "6", id, pos) - } else { - if (comments.frammentoNota != null && comments.frammentoNota != "nan"){ - createModule(collapseCardBody,"Nota: ", removeHtmlTags(comments.frammentoNota), "6", id, pos) - } - if (comments.annotazione != null && comments.annotazione != "nan"){ - createModule(collapseCardBody,"Nota completa: ", removeHtmlTags(comments.annotazione), "7", id, pos) - } + if (comments.annotazione != null && comments.annotazione != "nan") { + createModule(collapseCardBody, "Nota completa: ", removeHtmlTags(comments.annotazione), "7", id, pos) } - if (comments.NotaFonteCitazione != null && comments.NotaFonteCitazione != "nan" && comments.NotaFonteCitazione != ""){ - createModule(collapseCardBody,"Nota dell'annotatore: ", comments.NotaFonteCitazione, "8", id, pos) - } - collapseCardBody.appendTo(collapseNote); - collapseNote.appendTo(noteCard); - return noteCard; + } + if (comments.NotaFonteCitazione != null && comments.NotaFonteCitazione != "nan" && comments.NotaFonteCitazione != "") { + createModule(collapseCardBody, "Nota dell'annotatore: ", comments.NotaFonteCitazione, "8", id, pos) + } + collapseCardBody.appendTo(collapseNote); + collapseNote.appendTo(noteCard); + return noteCard; } - - - function appendSpecifica(commenti,cardBody, collapseCard){ + + + function appendSpecifica(commenti, cardBody, collapseCard) { var specifica = ""; - if(commenti.CitEpisodi != null && commenti.CitEpisodi != ""){ + if (commenti.CitEpisodi != null && commenti.CitEpisodi != "") { specifica = commenti.CitEpisodi; - createDivSingola(cardBody, "Contenuto del riferimento: ", "Episodio ("+specifica, true) + createDivSingola(cardBody, "Contenuto del riferimento: ", "Episodio (" + specifica, true) cardBody.appendTo(collapseCard); } - if(commenti.CitImmagini != null && commenti.CitImmagini != ""){ - specifica = commenti.CitImmagini; - createDivSingola(cardBody, "Contenuto del riferimento: ", "Immagine ("+specifica, true) + if (commenti.CitImmagini != null && commenti.CitImmagini != "") { + specifica = commenti.CitImmagini; + createDivSingola(cardBody, "Contenuto del riferimento: ", "Immagine (" + specifica, true) cardBody.appendTo(collapseCard); } - if(commenti.CitTeorie != null && commenti.CitTeorie != ""){ + if (commenti.CitTeorie != null && commenti.CitTeorie != "") { specifica = commenti.CitTeorie; - createDivSingola(cardBody, "Contenuto del riferimento: ", "Teoria ("+specifica, true) + createDivSingola(cardBody, "Contenuto del riferimento: ", "Teoria (" + specifica, true) cardBody.appendTo(collapseCard); } - if(commenti.CitMotivi != null && commenti.CitMotivi != ""){ + if (commenti.CitMotivi != null && commenti.CitMotivi != "") { specifica = commenti.CitMotivi; - createDivSingola(cardBody, "Contenuto del riferimento: ", "Motivo ("+specifica, true) + createDivSingola(cardBody, "Contenuto del riferimento: ", "Motivo (" + specifica, true) cardBody.appendTo(collapseCard); } - if(commenti.CitStilemi != null && commenti.CitStilemi != ""){ + if (commenti.CitStilemi != null && commenti.CitStilemi != "") { specifica = commenti.CitStilemi; - createDivSingola(cardBody, "Contenuto del riferimento: ", "Stilema ("+specifica, true) + createDivSingola(cardBody, "Contenuto del riferimento: ", "Stilema (" + specifica, true) cardBody.appendTo(collapseCard); } - if(commenti.CitTopografie != null && commenti.CitTopografie != ""){ + if (commenti.CitTopografie != null && commenti.CitTopografie != "") { specifica = commenti.CitTopografie; - createDivSingola(cardBody, "Contenuto del riferimento: ", "Topografia ("+specifica, true) + createDivSingola(cardBody, "Contenuto del riferimento: ", "Topografia (" + specifica, true) cardBody.appendTo(collapseCard); } } @@ -1044,29 +1042,29 @@ function emphResults(){ var commentHeader = $('<div class="d-flex align-content-start flex-nowrap text-muted" id="commentoVerso' + id + '_' + pos + '">') var rigaNota = $('<div class="px-3 py-1 m-0">'); var buttons = $('<div class="d-flex flex-wrap-reverse ml-auto align-items-center justify-content-end p-1">') - var collapseButton = $('<button id="collapseBtnNote'+id+ '_' + pos +'"'+ - 'class="btn btn-sm btn-outline-primary bg-light collapseNote border rounded text-primary align-self-end px-1 pb-0"'+ - 'data-toggle="collapse" data-target="#collapseNote'+id+ '_' + pos +'"'+ - 'aria-expanded="true" aria-controls="collapseNote'+id+ '_' + pos +'">'+ - '<ion-icon name="archive"></ion-icon>'); + var collapseButton = $('<button id="collapseBtnNote' + id + '_' + pos + '"' + + 'class="btn btn-sm btn-outline-primary bg-light collapseNote border rounded text-primary align-self-end px-1 pb-0"' + + 'data-toggle="collapse" data-target="#collapseNote' + id + '_' + pos + '"' + + 'aria-expanded="true" aria-controls="collapseNote' + id + '_' + pos + '">' + + '<ion-icon name="archive"></ion-icon>'); //var closeButton = $('<button id="closeNote'+id+ '_' + pos +'"'+ // 'class="btn btn-sm btn-outline-primary bg-light closeNote border rounded text-primary align-self-end px-1 pb-0 ml-1 mb-1">'+ // '<ion-icon name="close-circle"></ion-icon>'); collapseButton.appendTo(buttons); //closeButton.appendTo(buttons); - if (comments.commentario != null){ + if (comments.commentario != null) { rigaNota.append('<b>Commentatore:</b> <i>' + comments.commentario + '</i><br>'); - } - - + } + + if (comments.NomeAutoreCitazione == null) { nomeAutore = 'riferimento'; } else { nomeAutore = comments.NomeAutoreCitazione; } - if (comments.AutoreCitazione != null) { + if (comments.AutoreCitazione != null) { rigaNota.append('<b>Autore della fonte:</b><a href="' + comments.AutoreCitazione + '" target="_blank"> <i>' + nomeAutore + '</i> </a>'); } else { rigaNota.append('<b>Autore della fonte:</b> <i>' + nomeAutore + '</i>'); @@ -1095,57 +1093,57 @@ function emphResults(){ buttons.appendTo(commentHeader); commentHeader.appendTo(noteCardX); } - - function createDivSingola(divCampi, campo, valore, specifica){ + + function createDivSingola(divCampi, campo, valore, specifica) { //var divSingola = $('<div class="px-3 py-1">'); var divSingola = $('<div class="pl-0 pr-3 py-1">'); - if (specifica){ + if (specifica) { valore = valore.trim(); - divSingola.append ('<b>'+campo+'</b><i>'+valore+')</i>'); - }else { - divSingola.append ('<b>'+campo+'</b><i> '+valore+'</i>'); + divSingola.append('<b>' + campo + '</b><i>' + valore + ')</i>'); + } else { + divSingola.append('<b>' + campo + '</b><i> ' + valore + '</i>'); } divSingola.appendTo(divCampi); } - function createModule(collapse,label, testo, num, id, pos){ + function createModule(collapse, label, testo, num, id, pos) { var minLength = (($('#displaynote').width() / ($('#Test').width() / 32)) * 2 * 1.63); var divContent = $('<div class="text-muted p-0">'); //var divContent = $('<div class="d-flex align-content-start flex-wrap text-muted">'); //var divTesto = $('<div class="px-3 py-1">') - var nota = '<b>'+label+'</b><span class="blog-main-16">'+testo+'</span>'; - //divTesto.append(nota); - //divContent.append(divTesto); + var nota = '<b>' + label + '</b><span class="blog-main-16">' + testo + '</span>'; + //divTesto.append(nota); + //divContent.append(divTesto); divContent.append(nota); if (($('<textarea />').html(testo).text().length + label.length + 2) > minLength) { //console.log((testo.length + label.length +2) +" "+($('#displaynote').width() / $('#Test').width() * 2 * 32)) var divModule = $('<div class="module pb-0">'); - var divNote = $('<div class="collapse" id="collapse'+num+'Note'+id+ '_' + pos +'" aria-expanded="false">') - divModule.append('<a class="read-more collapsed" data-toggle="collapse" href="#collapse'+num+'Note'+id+ '_' + pos +'" role="button"></a>') - divNote.append(divContent) - divModule.append(divNote); - + var divNote = $('<div class="collapse" id="collapse' + num + 'Note' + id + '_' + pos + '" aria-expanded="false">') + divModule.append('<a class="read-more collapsed" data-toggle="collapse" href="#collapse' + num + 'Note' + id + '_' + pos + '" role="button"></a>') + divNote.append(divContent) + divModule.append(divNote); + } else { var divModule = $('<div class="py-1">'); divModule.append(divContent); } divModule.appendTo(collapse); } - - function createModuleCommentatore(collapse, commento, num, id, pos){ - let tmpcomm='['+commento+']' - let jsonCommento=JSON.parse(tmpcomm.replaceAll("'", '"').replaceAll("+", '"')); + function createModuleCommentatore(collapse, commento, num, id, pos) { + + let tmpcomm = '[' + commento + ']' + let jsonCommento = JSON.parse(tmpcomm.replaceAll("'", '"').replaceAll("+", '"')); var minLength = (($('#displaynote').width() / ($('#Test').width() / 32)) * 2 * 1.63); var divContent = $('<div class="d-flex align-content-start flex-wrap text-muted">'); var divTesto = $('<div class="pl-0 pr-3 py-1">') - var nota=''; - var lenmod=0 - for (el in jsonCommento){ + var nota = ''; + var lenmod = 0 + for (el in jsonCommento) { var urlCommento = jsonCommento[el].Commento; - + var esitoCommento = jsonCommento[el].Rapporto; - + var autoreCommento = jsonCommento[el].Autore if (autoreCommento == "") { autoreCommento = "Commento" @@ -1153,210 +1151,210 @@ function emphResults(){ if (esitoCommento == "") { esitoCommento = "Rapporto nullo" } - if (nota.length>0){ - nota=nota+' - ' + if (nota.length > 0) { + nota = nota + ' - ' } if (urlCommento == "") { //nota = '<b>Rapporto commento/commentatore: </b>'+esitoCommento+' Commento nullo, '+'</b><br>'; - nota = nota+'<i>'+esitoCommento+' Commento nullo'+'</i>'//+'<br>'; + nota = nota + '<i>' + esitoCommento + ' Commento nullo' + '</i>'//+'<br>'; } else { //nota = '<b>Rapporto commento/commentatore: </b><i>'+esitoCommento +' <a href="'+urlCommento+'"target="_blank">' + autoreCommento+ '</i></a> ' + '</b><br>'; - nota = nota+'<i>'+esitoCommento +' <a href="'+urlCommento+'"target="_blank">' + autoreCommento+ '</i></a>' //+ '</b><br>'; + nota = nota + '<i>' + esitoCommento + ' <a href="' + urlCommento + '"target="_blank">' + autoreCommento + '</i></a>' //+ '</b><br>'; } - lenmod=lenmod+esitoCommento.length + autoreCommento.length + lenmod = lenmod + esitoCommento.length + autoreCommento.length //divTesto.append(nota); - + } - nota='<b>Rapporto commento/commentatore:</b> '+nota + nota = '<b>Rapporto commento/commentatore:</b> ' + nota divTesto.append(nota); - divContent.append(divTesto); + divContent.append(divTesto); var divModule = $('<div class="module py-1">'); divModule.append(divContent); divModule.appendTo(collapse); } - function createModuleFrammAnnot(collapse, testo1, testo2, num, id, pos){ + function createModuleFrammAnnot(collapse, testo1, testo2, num, id, pos) { var minLength = (($('#displaynote').width() / ($('#Test').width() / 32)) * 2 * 1.63); var divFrammAnnot = $('<div class="py-1">'); var divContent1 = $('<div class="text-muted p-0">'); var divContent2 = $('<div class="text-muted p-0">'); - var uniqueIdMulti1 = 'coll'+num+'SN'+id+'_'+pos; - var uniqueIdMulti2 = 'coll'+num+'CN'+id+'_'+pos; - var divMultiCollapse1 = $('<div class="collapse multi-collapse'+id+'_'+pos+' show text-muted p-0" id="' + uniqueIdMulti1 + '">'); - var divMultiCollapse2 = $('<div class="collapse multi-collapse'+id+'_'+pos+' text-muted p-0" id="' + uniqueIdMulti2 + '">'); - var label1 = '<b>Nota / <a href="" data-toggle="collapse" data-target=".multi-collapse'+id+'_'+pos+'" aria-controls="' + uniqueIdMulti1 + ' ' + uniqueIdMulti2 +'">Nota completa</a>: </b>' - var label2 = '<b><a href="" data-toggle="collapse" data-target=".multi-collapse'+id+'_'+pos+'" aria-controls="' + uniqueIdMulti1 + ' ' + uniqueIdMulti2 +'">Nota</a> / Nota completa: </b>' - var nota1 = '<span class="blog-main-16">'+testo1+'</span>'; - var nota2 = '<span class="blog-main-16">'+testo2+'</span>'; + var uniqueIdMulti1 = 'coll' + num + 'SN' + id + '_' + pos; + var uniqueIdMulti2 = 'coll' + num + 'CN' + id + '_' + pos; + var divMultiCollapse1 = $('<div class="collapse multi-collapse' + id + '_' + pos + ' show text-muted p-0" id="' + uniqueIdMulti1 + '">'); + var divMultiCollapse2 = $('<div class="collapse multi-collapse' + id + '_' + pos + ' text-muted p-0" id="' + uniqueIdMulti2 + '">'); + var label1 = '<b>Nota / <a href="" data-toggle="collapse" data-target=".multi-collapse' + id + '_' + pos + '" aria-controls="' + uniqueIdMulti1 + ' ' + uniqueIdMulti2 + '">Nota completa</a>: </b>' + var label2 = '<b><a href="" data-toggle="collapse" data-target=".multi-collapse' + id + '_' + pos + '" aria-controls="' + uniqueIdMulti1 + ' ' + uniqueIdMulti2 + '">Nota</a> / Nota completa: </b>' + var nota1 = '<span class="blog-main-16">' + testo1 + '</span>'; + var nota2 = '<span class="blog-main-16">' + testo2 + '</span>'; divFrammAnnot.append(divMultiCollapse1); divFrammAnnot.append(divMultiCollapse2); divContent1.append(label1 + nota1); divContent2.append(label2 + nota2); - + if (($('<textarea />').html(testo1).text().length + 23) > minLength) { var divModule1 = $('<div class="module pb-0">'); - var divNote1 = $('<div class="collapse" id="collapse'+num+'Note'+id+ '_' + pos +'" aria-expanded="false">') - divModule1.append('<a class="read-more collapsed" data-toggle="collapse" href="#collapse'+num+'Note'+id+ '_' + pos +'" role="button"></a>') - divNote1.append(divContent1) + var divNote1 = $('<div class="collapse" id="collapse' + num + 'Note' + id + '_' + pos + '" aria-expanded="false">') + divModule1.append('<a class="read-more collapsed" data-toggle="collapse" href="#collapse' + num + 'Note' + id + '_' + pos + '" role="button"></a>') + divNote1.append(divContent1) divModule1.append(divNote1); - divMultiCollapse1.append(divModule1); + divMultiCollapse1.append(divModule1); } else { divMultiCollapse1.append(divContent1); } if (($('<textarea />').html(testo2).text().length + 23) > minLength) { var divModule2 = $('<div class="module pb-0">'); - var divNote2 = $('<div class="collapse" id="collapse'+num+'Note'+(id + 1)+ '_' + pos +'" aria-expanded="false">') - divModule2.append('<a class="read-more collapsed" data-toggle="collapse" href="#collapse'+num+'Note'+(id + 1)+ '_' + pos +'" role="button"></a>') + var divNote2 = $('<div class="collapse" id="collapse' + num + 'Note' + (id + 1) + '_' + pos + '" aria-expanded="false">') + divModule2.append('<a class="read-more collapsed" data-toggle="collapse" href="#collapse' + num + 'Note' + (id + 1) + '_' + pos + '" role="button"></a>') divNote2.append(divContent2); divModule2.append(divNote2); - divMultiCollapse2.append(divModule2); + divMultiCollapse2.append(divModule2); } else { divMultiCollapse2.append(divContent2); } divFrammAnnot.appendTo(collapse); } - - function hasComments(cid){ + + function hasComments(cid) { var id = cid.substr(9); - for (var pos in commentsArray){ + for (var pos in commentsArray) { var comments = commentsArray[pos] - if (comments.verso == id){ + if (comments.verso == id) { //console.log(comments) return (true) } } return false; } - - function hasCommentsJson(cid){ - + + function hasCommentsJson(cid) { + //return commentsJson.hasOwnProperty(cid.substr(9)); - var id=cid.substr(9); + var id = cid.substr(9); for (const [key, value] of Object.entries(commentsJson)) { - if(key==id || key.startsWith(id+'-')) - return true + if (key == id || key.startsWith(id + '-')) + return true } return false - + } - function numberOfComments(cid){ + function numberOfComments(cid) { var id = cid.substr(9); - return commentsArray.filter(x => x.verso==id).length + return commentsArray.filter(x => x.verso == id).length } - - function numberOfCommentsJson(cid){ - var cntc=0 + + function numberOfCommentsJson(cid) { + var cntc = 0 var id = cid.substr(9); for (const [key, value] of Object.entries(commentsJson)) { - if(key==id || key.startsWith(id+'-')) - cntc+=commentsJson[key].length + if (key == id || key.startsWith(id + '-')) + cntc += commentsJson[key].length } return cntc } /*FINE GESTIONE CITAZIONI*/ - function getCantica(numeroCantica){ - - return (cantiche[numeroCantica]) + function getCantica(numeroCantica) { + + return (cantiche[numeroCantica]) } - + //Calcola lemma e categoria grammaticale oppure categoria sintattica per tooltip - - function formatTTContent(categ, syntType, sentId){ + + function formatTTContent(categ, syntType, sentId) { /*if (selectedVista=='frasi'){ return '<div class="ttContent"><b>'+maptypes[syntType]+'</b></div>'; }*/ - var details=[]; - var lemma=categ.split('#')[1].replace("^", " ") //il lemma - var categoria=categ.split('#')[0] // la categoria + var details = []; + var lemma = categ.split('#')[1].replace("^", " ") //il lemma + var categoria = categ.split('#')[0] // la categoria var details = getHoverContent(categoria); - + var myitems; var catgramm; var subcatgramm = ''; var popoverText = ''; - var discorsost=''; - var funcFrase=''; - var TipiDiscorso={ + var discorsost = ''; + var funcFrase = ''; + var TipiDiscorso = { "ThoughtDiscourse": "Pensato", "DirectDiscourse": "Diretto", "SpeakableDiscourse": "Parlato" - + } - - - for (detail of details){ - - myitems= detail.split(','); - - catgramm='<div class="ttContent">'; - subcatgramm='<p> <b> '+lemma+' - </b><i>'+myitems[0]+','+myitems.slice(1)+'</i></p></div>'; + + + for (detail of details) { + + myitems = detail.split(','); + + catgramm = '<div class="ttContent">'; + subcatgramm = '<p> <b> ' + lemma + ' - </b><i>' + myitems[0] + ',' + myitems.slice(1) + '</i></p></div>'; popoverText = popoverText + catgramm + subcatgramm; } - - if(vistaDialoghi){ - for (const india in dialoghi){ - if (dialoghi[india]['Cnt'].replace('_so','')==sentId){ - discorsost="<div class='ttContentPers'><b>Personaggio:</b> <i>"+dialoghi[india]['Spna'].replace('http://dantenetwork.it/data/commedia/', '')+'</i>' - +'<br><b>Discorso:</b> <i>'+TipiDiscorso[dialoghi[india]['Dty']]+'</i></div>' + + if (vistaDialoghi) { + for (const india in dialoghi) { + if (dialoghi[india]['Cnt'].replace('_so', '') == sentId) { + discorsost = "<div class='ttContentPers'><b>Personaggio:</b> <i>" + dialoghi[india]['Spna'].replace('http://dantenetwork.it/data/commedia/', '') + '</i>' + + '<br><b>Discorso:</b> <i>' + TipiDiscorso[dialoghi[india]['Dty']] + '</i></div>' break; - } + } } } - if(vistaPeriodi){ - funcFrase='<div class="ttContent"><b>'+maptypes[syntType]+'</b></div>' + if (vistaPeriodi) { + funcFrase = '<div class="ttContent"><b>' + maptypes[syntType] + '</b></div>' } - popoverText=popoverText+discorsost+funcFrase + popoverText = popoverText + discorsost + funcFrase return (popoverText); } - function getHoverContent(categ){ - + function getHoverContent(categ) { + //console.log('Categoria '+categ) - var mycat=[]; - - - categ=categ.replace('%2A', '*') - categ=categ.replace('%2B', '+') - categ=categ.replace('%2C', ',') - categ=categ.replace('%2D', '-') - if(categ.includes('^')){ - categs=categ.split('^') - for (cat of categs){ + var mycat = []; + + + categ = categ.replace('%2A', '*') + categ = categ.replace('%2B', '+') + categ = categ.replace('%2C', ',') + categ = categ.replace('%2D', '-') + if (categ.includes('^')) { + categs = categ.split('^') + for (cat of categs) { mycat.push(proprietaForma(cat)) } //console.log(mycat.join('-')) - }else{ + } else { mycat.push(proprietaForma(categ)); } - return(mycat); + return (mycat); } - - function proprietaForma(categ){ - if (categ[0]=='v'){ + + function proprietaForma(categ) { + if (categ[0] == 'v') { return parserVerbi.parse(categ).split(',').filter(prop => prop.length > 0).join() } - if(categ[0]=='s'){ + if (categ[0] == 's') { return parserSostantivi.parse(categ).split(',').filter(prop => prop.length > 0).join() } - if(categ[0]=='e'){ + if (categ[0] == 'e') { return parserPreposizioni.parse(categ).split(',').filter(prop => prop.length > 0).join() } - if(categ[0]=='b'){ + if (categ[0] == 'b') { return parserAvverbi.parse(categ).split(',').filter(prop => prop.length > 0).join() } - if(categ[0]=='p'){ + if (categ[0] == 'p') { return parserPronomi.parse(categ).split(',').filter(prop => prop.length > 0).join() } - if(categ[0]=='a'){ + if (categ[0] == 'a') { return parserAggettivi.parse(categ).split(',').filter(prop => prop.length > 0).join() } - if(categ[0]=='r'){ + if (categ[0] == 'r') { return parserArticolo.parse(categ).split(',').filter(prop => prop.length > 0).join() } if (categ[0] == 'f') { @@ -1370,71 +1368,77 @@ function emphResults(){ } return categoriegrammaticali[categ[0]] } - + function cleanSearchResult() { - + $("#headingZero").closest('.card').css("display", "none"); $("#collapseZero").collapse('hide'); $("#vistaFrasi").empty() $("#vistaFrasi").css("display", "none"); - for (msid of listaPeriodiRisultato){ - $('.'+msid).each(function(){ + for (msid of listaPeriodiRisultato) { + $('.' + msid).each(function() { + $(this).css('color', ''); + if (!vistaPeriodi){ + var pstp = $(this).attr('class').split(" ")[1] + if (pstp=='sentencetag') + $(this).attr('style', 'display: none;'); + } + + }); + } + for (clsid of listaClausoleRisultato) { + var tmpcl = clsid.split('-'); + $('.' + tmpcl[0]).each(function() { $(this).css('color', ''); }); } - for (clsid of listaClausoleRisultato){ - var tmpcl=clsid.split('-'); - $('.'+tmpcl[0]).each(function(){ - $(this).css('color', ''); - }); - } - + //let minim=$(" .minimap__content") for (forma of listarisultati) { idforma = '#' + forma $(idforma).removeClass("font-weight-bold mark ") minim.contents().find(idforma).removeClass("font-weight-bold mark ") } - - + + $("#accordionNav .badge").remove(); //$("#headingZero").css("display", "none"); - + listarisultati = [] - listaPeriodiRisultato=[] - listaClausoleRisultato=[] - resultSentences=new Set() - if(cantoDisplayed=='#vistaFrasi') - cantoDisplayed=prevCantoDisplayed + listaPeriodiRisultato = [] + listaClausoleRisultato = [] + resultSentences = new Set() + if (cantoDisplayed == '#vistaFrasi') + cantoDisplayed = prevCantoDisplayed $(cantoDisplayed).attr('style', 'display: d-flex;'); //manageMM (cantoDisplayed) currPage = 0; latestPhraseId = ""; drawMinimap(cantoDisplayed, true) } - - function manageMM(name){ + + function manageMM(name) { currentMinimap = name; let testhtml = $(currentMinimap)[0].outerHTML; //let minim=$(" .minimap__content") - let bm=minim.contents().find(' .blog-main') + let bm = minim.contents().find(' .blog-main') bm.empty() bm.append(testhtml) getDimensionsDiv(true, true); - + } - - var unitaRicerca='forma' - - function manageQuery(){ + + var unitaRicerca = 'forma' + + function manageQuery() { cleanSearchResult() esprlogica = [] - jsonQuery=getJsonQuery() - - if(jsonQuery['QueryAvanzata']==0) - unitaRicerca='forma' + jsonQuery = getJsonQuery() + + if (jsonQuery['QueryAvanzata'] == 0) + unitaRicerca = 'forma' else - unitaRicerca=jsonQuery['unitaRicerca'] + unitaRicerca = jsonQuery['unitaRicerca'] console.log("got json query, unita ricerca: " + unitaRicerca) if (jsonQuery['QueryAvanzata'] == 0 && jsonQuery['Clausola0']['queryText'] == '') { alert('Digitare una stringa da cercare') @@ -1450,331 +1454,331 @@ function emphResults(){ var inf = [] var pur = [] var par = [] - var noContext=true + var noContext = true if (!(contesto[0].every(item => item === 0) && contesto[1].every(item => item === 0) && contesto[2].every(item => item === 0))) { //inf=contesto[0].some(item => item !== 0) - noContext=false + noContext = false inf = contesto[0].reduce((a, e, i) => { if (e === 1) - a.push(i+1); + a.push(i + 1); return a; }, []); pur = contesto[1].reduce((a, e, i) => { if (e === 1) - a.push(i+1); + a.push(i + 1); return a; }, []); par = contesto[2].reduce((a, e, i) => { if (e === 1) - a.push(i+1); + a.push(i + 1); return a; }, []); } - - var resultsInCantica=[] - var resultsInCanto=[] - console.log('frase, l. '+searchwords.length) - if(noContext || inf.length) - executeLocalSearch(searchwords, formeprima, (formeprima.length-searchwords.length), cantiche[0], inf, resultsInCantica, resultsInCanto) - if(noContext || pur.length) - executeLocalSearch(searchwords, formeseconda, (formeseconda.length-searchwords.length), cantiche[1], pur, resultsInCantica, resultsInCanto) - if(noContext || par.length) - executeLocalSearch(searchwords, formeterza, (formeterza.length-searchwords.length), cantiche[2], par, resultsInCantica, resultsInCanto) - if (listarisultati.length){ + + var resultsInCantica = [] + var resultsInCanto = [] + console.log('frase, l. ' + searchwords.length) + if (noContext || inf.length) + executeLocalSearch(searchwords, formeprima, (formeprima.length - searchwords.length), cantiche[0], inf, resultsInCantica, resultsInCanto) + if (noContext || pur.length) + executeLocalSearch(searchwords, formeseconda, (formeseconda.length - searchwords.length), cantiche[1], pur, resultsInCantica, resultsInCanto) + if (noContext || par.length) + executeLocalSearch(searchwords, formeterza, (formeterza.length - searchwords.length), cantiche[2], par, resultsInCantica, resultsInCanto) + if (listarisultati.length) { //evidenzia risultati for (ris of listarisultati) { idris = '#' + ris $(idris).addClass("font-weight-bold mark ") - + } } - var totResultN=showBadgeInCantica(resultsInCantica) + var totResultN = showBadgeInCantica(resultsInCantica) showBadgeInCanto(resultsInCanto) - + return } jsonQuery = buildSQ(jsonQuery) - + myquery = new sparqlGenerator().stringify(jsonQuery) console.log(myquery) - + executeQuerySearch(myquery) - + } - - function executeLocalSearch(testo, forme, limit, cantica, cont, resultsInCantica, resultsInCanto){ - - for (var ip=0; ip<=limit; ip++){ - - if(cont.length && !cont.includes(parseInt(forme[ip].split('_')[1]))){ - continue - } - var fnd=true - var strlen=0; - var tmpa=[] - for (var frind=0; frind<testo.length; frind++){ - var itm=forme[ip+frind].split('_')[0].toLowerCase().replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g,"") - - tmpa.push(itm) - } - fnd=(testo.join(' ').toLowerCase()===tmpa.join(' ') || tmpa.join(' ').startsWith(testo.join(' ').toLowerCase())) - - if (fnd){ - //console.log('ipfound: '+forme[ip].split('_')[2]+' - '+forme[(ip+testo.length-1)].split('_')[2]) - - resultsInCantica.push(cantica) - resultsInCanto.push(cantica+'Canto '+forme[ip].split('_')[1]) - var tstar= parseInt(forme[ip].split('_')[2]) - var tstop=parseInt(forme[(ip+testo.length-1)].split('_')[2]) - - for (var mpo=tstar;mpo<tstop+1; mpo++){ - - listarisultati.push(mpo) - } - - } - + + function executeLocalSearch(testo, forme, limit, cantica, cont, resultsInCantica, resultsInCanto) { + + for (var ip = 0; ip <= limit; ip++) { + + if (cont.length && !cont.includes(parseInt(forme[ip].split('_')[1]))) { + continue } + var fnd = true + var strlen = 0; + var tmpa = [] + for (var frind = 0; frind < testo.length; frind++) { + var itm = forme[ip + frind].split('_')[0].toLowerCase().replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, "") + + tmpa.push(itm) + } + fnd = (testo.join(' ').toLowerCase() === tmpa.join(' ') || tmpa.join(' ').startsWith(testo.join(' ').toLowerCase())) + + if (fnd) { + //console.log('ipfound: '+forme[ip].split('_')[2]+' - '+forme[(ip+testo.length-1)].split('_')[2]) + + resultsInCantica.push(cantica) + resultsInCanto.push(cantica + 'Canto ' + forme[ip].split('_')[1]) + var tstar = parseInt(forme[ip].split('_')[2]) + var tstop = parseInt(forme[(ip + testo.length - 1)].split('_')[2]) + + for (var mpo = tstar; mpo < tstop + 1; mpo++) { + + listarisultati.push(mpo) + } + + } + + } } - - - + + + //manage sentence and clauses - -/* function showSentenceStructure(sentence) { - sid = '.' + sentence.toString() - //console.log(sid) - $(sid).addClass('text-info font-italic') + /* function showSentenceStructure(sentence) { + + sid = '.' + sentence.toString() + //console.log(sid) + $(sid).addClass('text-info font-italic') + + } + */ + - } - */ - - function resetSentenceStructure(sentence) { $(" ." + sentence).removeClass('text-info font-italic') } //Cantica management functions - + function showCanto(formecantica, idcantica, canto) { var setVersiCanto = new Set() var periodinum = {}; - var cantica=cantiche[parseInt(idcantica)-1]; + var cantica = cantiche[parseInt(idcantica) - 1]; var elverso, formaItem, currSentenceId; var ultimaFormaCanto; - let numeroPeriodo=1; + let numeroPeriodo = 1; formecantica.map(function(item) { formaItem = item.split("_"); - var sentenceid=idcantica+"_"+formaItem[1]+"_s_"+formaItem[5] - if (formaItem[1]==canto){ - if (! setVersiCanto.has(cantica + "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1])){ - + var sentenceid = idcantica + "_" + formaItem[1] + "_s_" + formaItem[5] + if (formaItem[1] == canto) { + if (!setVersiCanto.has(cantica + "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1])) { + var verso = parseInt(formaItem[3]) - 1; - var idCommento = "Commento_"+idcantica+"_"+canto+"_"+verso; + var idCommento = "Commento_" + idcantica + "_" + canto + "_" + verso; //var commNumber = numberOfComments(idCommento); - var commNumber=numberOfCommentsJson(idCommento) - - - - - if(currSentenceId!=null && currSentenceId != sentenceid){ - - createSpanPeriodiTag(closeSTag, 'c', formaItem[2]-1, currSentenceId, elverso, periodinum[currSentenceId]) - currSentenceId=null + var commNumber = numberOfCommentsJson(idCommento) + + + + + if (currSentenceId != null && currSentenceId != sentenceid) { + + createSpanPeriodiTag(closeSTag, 'c', formaItem[2] - 1, currSentenceId, elverso, periodinum[currSentenceId]) + currSentenceId = null } - if (commNumber>0){ + if (commNumber > 0) { createCommentSpan(idCommento, elverso, commNumber) //console.log("Numero commenti: "+commNumber) } //elverso=createDivVersoNew(cantica, formaItem[3], 'Canto_' + formaItem[1]) - elverso=createDivVersoLI(cantica, formaItem[3], 'Canto_' + formaItem[1]) - setVersiCanto.add(cantica+ "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1]) + elverso = createDivVersoLI(cantica, formaItem[3], 'Canto_' + formaItem[1]) + setVersiCanto.add(cantica + "_" + formaItem[3] + "_" + 'Canto_' + formaItem[1]) } - if(currSentenceId==null || currSentenceId != sentenceid){ - - if (currSentenceId!=null){ - createSpanPeriodiTag(closeSTag, 'c', formaItem[2]-1, currSentenceId, elverso, periodinum[currSentenceId]) + if (currSentenceId == null || currSentenceId != sentenceid) { + + if (currSentenceId != null) { + createSpanPeriodiTag(closeSTag, 'c', formaItem[2] - 1, currSentenceId, elverso, periodinum[currSentenceId]) } - currSentenceId=sentenceid; - if (periodinum[currSentenceId]==null){ - periodinum[currSentenceId]=numeroPeriodo - numeroPeriodo=numeroPeriodo+1; + currSentenceId = sentenceid; + if (periodinum[currSentenceId] == null) { + periodinum[currSentenceId] = numeroPeriodo + numeroPeriodo = numeroPeriodo + 1; } //periodinum[currSentenceId]=numeroPeriodo //numeroPeriodo=numeroPeriodo+1; createSpanPeriodiTag(openSTag, 'o', formaItem[2], sentenceid, elverso, periodinum[currSentenceId]) } - createSpanFormeNew(formaItem[0], formaItem[4], formaItem[2], sentenceid,formaItem[6],elverso) - ultimaFormaCanto=formaItem; - + createSpanFormeNew(formaItem[0], formaItem[4], formaItem[2], sentenceid, formaItem[6], elverso) + ultimaFormaCanto = formaItem; + } - + }) //crea tag di chiusura per l'ultimo periodo del canto - - createSpanPeriodiTag(closeSTag, 'c', ultimaFormaCanto[2]-1, currSentenceId, elverso, periodinum[currSentenceId]) - + + createSpanPeriodiTag(closeSTag, 'c', ultimaFormaCanto[2] - 1, currSentenceId, elverso, periodinum[currSentenceId]) + //gestione risultati - - if (listaPeriodiRisultato.length){ - for (msid of listaPeriodiRisultato){ + + if (listaPeriodiRisultato.length) { + for (msid of listaPeriodiRisultato) { loadPeriodo(msid) - + } } - - if (listaClausoleRisultato.length){ - for (clsid of listaClausoleRisultato){ - let tmpid=clsid.split('-') + + if (listaClausoleRisultato.length) { + for (clsid of listaClausoleRisultato) { + let tmpid = clsid.split('-') //loadFrase(tmpid[0], tmpid[1]) loadClausola(tmpid[0], tmpid[1], tmpid[2], tmpid[3]) - + } - } - - if (listarisultati.length){ + } + + if (listarisultati.length) { //evidenzia risultati for (ris of listarisultati) { idris = '#' + ris $(idris).addClass("font-weight-bold mark ") - + } } - + } - + function createCommentSpan(idVerso, elementoverso, numberOfComments) { var spanoccorrenza = $('<button />') spanoccorrenza.attr('id', idVerso) //btn-sm btn-outline-secondary spanoccorrenza.attr('class', 'btn btn-sm btn-outline-primary showcomments bg-light border-0 rounded text-primary px-1 pt-1 pb-0 ml-1'); - if (numberOfComments > 1){ + if (numberOfComments > 1) { var commentIcon = '<ion-icon name="document-attach"></ion-icon><ion-icon name="add-circle-outline"></ion-icon>'; } else { var commentIcon = '<ion-icon name="document-attach"></ion-icon>'; } - + spanoccorrenza.append(commentIcon) //spanoccorrenza.append(number) spanoccorrenza.appendTo(elementoverso) } - + function createSpanPeriodiTag(separator, catgramm, pos, sentenceid, elementoverso, pnum) { var spanoccorrenza = $('<span />') - spanoccorrenza.attr('id', 'sep_'+pos) + spanoccorrenza.attr('id', 'sep_' + pos) spanoccorrenza.attr('title', catgramm) - spanoccorrenza.attr('class', sentenceid+' sentencetag') - spanoccorrenza.append(separator+" ") - - if (separator==closeSTag){ - + spanoccorrenza.attr('class', sentenceid + ' sentencetag font-weight-bold') + spanoccorrenza.append(separator + " ") + + if (separator == closeSTag) { + //aggiunge simbolo di chiusura dialogo - for (const india in dialoghi){ - if (dialoghi[india]['Cnt'].replace('_so','')==sentenceid){ + for (const india in dialoghi) { + if (dialoghi[india]['Cnt'].replace('_so', '') == sentenceid) { //PER GESTIONE PUNTEGGIATURA IN DIALOGHI, DA FARE //console.log(elementoverso.children().slice(-2).text()) - if (elementoverso.children().slice(-2).text().includes(',')){ + if (elementoverso.children().slice(-2).text().includes(',')) { //console.log(' virgola ' +elementoverso.children().slice(-1).html()) //let paro=elementoverso.children().slice(-2).text().replace(',', '') //elementoverso.children().slice(-2).text(paro) //console.log(' virgola dopo' +elementoverso.children().slice(-1).html()) - + } elementoverso.children().slice(-1).html('» ') - - + + break; - } + } } - - varsupel=$('<sup />') + + varsupel = $('<sup />') //varsupel.append(sentenceid.split('_')[3]+' ') - varsupel.append(pnum+' ') + varsupel.append(pnum + ' ') varsupel.appendTo(spanoccorrenza) } spanoccorrenza.css("display", "none") spanoccorrenza.appendTo(elementoverso) - if (separator==openSTag){ - + if (separator == openSTag) { + //aggiunge simbolo di apertura dialogo - for (const india in dialoghi){ - if (dialoghi[india]['Cnt'].replace('_so','')==sentenceid){ - var enddiscorso=$('<span />') + for (const india in dialoghi) { + if (dialoghi[india]['Cnt'].replace('_so', '') == sentenceid) { + var enddiscorso = $('<span />') enddiscorso.append('«') enddiscorso.appendTo(elementoverso) break; - } + } } } - + } - + function createSpanFormeNew(forma, catgramm, pos, sentenceid, clausefunct, elementoverso) { var spanoccorrenza = $('<span />') - var nbsp=$('<span> </span>') + var nbsp = $('<span> </span>') spanoccorrenza.attr('id', pos) //spanoccorrenza.attr('data-cg', catgramm) spanoccorrenza.attr('title', catgramm) - spanoccorrenza.attr('class', sentenceid+" "+clausefunct+' '+formaClass) + spanoccorrenza.attr('class', sentenceid + " " + clausefunct + ' ' + formaClass) spanoccorrenza.append(forma) spanoccorrenza.appendTo(elementoverso) nbsp.appendTo(elementoverso) } -/* function createDivVersoNew(cantica, num, canto) { - - var elementoverso = createDivVersoGeneric(cantica, num, canto) + /* function createDivVersoNew(cantica, num, canto) { - elementoverso.appendTo('#' + cantica + canto) - return elementoverso - - }*/ + var elementoverso = createDivVersoGeneric(cantica, num, canto) + + elementoverso.appendTo('#' + cantica + canto) + return elementoverso + }*/ + function createDivVersoLI(cantica, num, canto) { - - var elementoverso = createDivVersoGenericLi(cantica, num, canto) - let cantoContainer=$('#' + cantica + canto); - elementoverso.appendTo(cantoContainer.find('ol')) - return elementoverso + + var elementoverso = createDivVersoGenericLi(cantica, num, canto) + let cantoContainer = $('#' + cantica + canto); + elementoverso.appendTo(cantoContainer.find('ol')) + return elementoverso } - + function createDivVersoGenericLi(cantica, num, canto) { - let digits=num.length - - var spannum=$('<span />') - - if (digits==1) - spannum.append('\xa0\xa0') - if (digits==2) - spannum.append('\xa0') - spannum.append(num+'. ') - var elementoverso = $('<li />') - //var elementoverso=$('<p />') - //elementoverso.append(spannum) - elementoverso.attr("value", num) - - //elementoverso.attr("style", "line-height: 1.0em") + let digits = num.length - elementoverso.attr('class', 'f6 mb-0 text-muted text-nowrap font-weight-lighter ')//+cantica+' '+canto) - //elementoverso.attr('class', 'text-nowrap ')//+cantica+' '+canto) + var spannum = $('<span />') - elementoverso.attr('id', cantica + "_" + canto + "_" + num) - elementoverso.append('\xa0') - return elementoverso + if (digits == 1) + spannum.append('\xa0\xa0') + if (digits == 2) + spannum.append('\xa0') + spannum.append(num + '. ') + var elementoverso = $('<li />') + //var elementoverso=$('<p />') + //elementoverso.append(spannum) + elementoverso.attr("value", num) + + //elementoverso.attr("style", "line-height: 1.0em") + + elementoverso.attr('class', 'f6 mb-0 text-muted text-nowrap font-weight-lighter ')//+cantica+' '+canto) + //elementoverso.attr('class', 'text-nowrap ')//+cantica+' '+canto) + + elementoverso.attr('id', cantica + "_" + canto + "_" + num) + elementoverso.append('\xa0') + return elementoverso } - - + + function createAllDivCanti() { var divFrasi = $('<div />') var divDialoghi = $('<div />') var divMetafore = $('<div />') - + //var titoloFrasi = $('<h4 class="titolo-canto pb-2" />') var titoloDialoghi = $('<h4 class="titolo-canto pb-2" />') var titoloMetafore = $('<h4 class="titolo-canto pb-2" />') @@ -1789,11 +1793,11 @@ function emphResults(){ divDialoghi.attr('class', 'pb-4') divMetafore.attr('id', "vistaMetafore") divMetafore.attr('class', 'pb-4') - + divFrasi.appendTo('#displaycanto') divDialoghi.appendTo('#displaycanto') divMetafore.appendTo('#displaycanto') - + divFrasi.css("display", "none") divDialoghi.css("display", "none") divMetafore.css("display", "none") @@ -1802,119 +1806,119 @@ function emphResults(){ titoloDialoghi.appendTo(divDialoghi) titoloMetafore.appendTo(divMetafore) - - for (cantica of cantiche){ - for (var i=1; i<35; i++){ - if(i==34 && cantica!=="Inferno"){ + + for (cantica of cantiche) { + for (var i = 1; i < 35; i++) { + if (i == 34 && cantica !== "Inferno") { continue } - canto= "Canto "+ i - cantoRomano= "Canto "+ getRoman(i) + canto = "Canto " + i + cantoRomano = "Canto " + getRoman(i) - var divcanto = $('<div />') - var titolocanto = $('<h4 class="titolo-canto pb-2" />') - titolocanto.append(cantica + ", " + cantoRomano) - divcanto.attr('class', 'canto pt-3') - divcanto.css("display", "none") + var divcanto = $('<div />') + var titolocanto = $('<h4 class="titolo-canto pb-2" />') + titolocanto.append(cantica + ", " + cantoRomano) + divcanto.attr('class', 'canto pt-3') + divcanto.css("display", "none") - divcanto.attr('id', (cantica + canto).replace(" ", "_")) - titolocanto.appendTo(divcanto) - //nuovo - var olversi=$('<ol />') - olversi.attr('class', 'pb-4') - olversi.appendTo(divcanto) - //fine nuovo - divcanto.appendTo('#displaycanto') + divcanto.attr('id', (cantica + canto).replace(" ", "_")) + titolocanto.appendTo(divcanto) + //nuovo + var olversi = $('<ol />') + olversi.attr('class', 'pb-4') + olversi.appendTo(divcanto) + //fine nuovo + divcanto.appendTo('#displaycanto') } } } //execute query async function executeQuerySearch(query) { - - + + alert(query) $("#loader").fadeIn(300); //$("#searchcomm2").prop("disabled", true); //$("#searchcomm2").html('<span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span> Searching...'); try { seachbBindingsStream = await myEngine.queryBindings(query, { sources: [{ type: 'sparql', value: sparqlEndpoint },], }); - } + } catch (err) { $("#loader").fadeOut(300); //$("#searchcomm2").prop("disabled", false); //$("#searchcomm2").html('<span class="" role="status" aria-hidden="true"></span> Search'); - console.log(err.message); + console.log(err.message); }; - + try { var result = new Set() var resultClauses = new Set() - + var resultsInCantica = [] var resultsInCanto = [] seachbBindingsStream.on('data', (binding) => { - + //cantica if (binding.has('Cantica')) cantica = binding.get('Cantica').value; else - cantica='Nessuna' - - + cantica = 'Nessuna' + + //canto if (binding.has('Canto')) canto = binding.get('Canto').value; else - canto='Canto 0' - + canto = 'Canto 0' + //numero del verso if (binding.has('NumeroVerso')) numverso = binding.get('NumeroVerso').value; else - numverso=0 + numverso = 0 //posizione del frammento if (binding.has('pos')) pos = binding.get('pos').value; - else{ + else { pos = 0; } - + //regione della clausola - var clfrom=binding.get('clfr').value; - var clto=binding.get('clto').value; + var clfrom = binding.get('clfr').value; + var clto = binding.get('clto').value; //var cltype=binding.get('clatype').value.replace('https://dantenetwork.it/ontology/syntit/current/','') - var clfunction=binding.get('clafunction').value.replace('https://dantenetwork.it/ontology/syntit/current/','') - var clocc=binding.get('clocc').value.replace('http://dantenetwork.it/data/commedia/','') + var clfunction = binding.get('clafunction').value.replace('https://dantenetwork.it/ontology/syntit/current/', '') + var clocc = binding.get('clocc').value.replace('http://dantenetwork.it/data/commedia/', '') //var clfunction=binding.get('clf').value.replace('https://dantenetwork.it/ontology/syntit/current/','') //id del periodo - var sentenceid=binding.get('sentence').value.replace('http://dantenetwork.it/data/commedia/','') - - if (pos>0 && !result.has(pos)){ - + var sentenceid = binding.get('sentence').value.replace('http://dantenetwork.it/data/commedia/', '') + + if (pos > 0 && !result.has(pos)) { + result.add(pos) resultsInCantica.push(cantica); resultsInCanto.push(cantica + canto) } - if(unitaRicerca!='frase' && pos==-1){ - unitaRicerca='frase' + if (unitaRicerca != 'frase' && pos == -1) { + unitaRicerca = 'frase' } - resultClauses.add(sentenceid + "-" +clfrom+'-'+clto+"-"+clfunction.trim().replace('ordinateClause','').replace('MainClause', 'Ma')+'-'+cantica+'-'+canto+'-'+clocc) + resultClauses.add(sentenceid + "-" + clfrom + '-' + clto + "-" + clfunction.trim().replace('ordinateClause', '').replace('MainClause', 'Ma') + '-' + cantica + '-' + canto + '-' + clocc) resultSentences.add(sentenceid) - + }); seachbBindingsStream.on('end', () => { - var resSent=new Set() - var resSentence=new Set() - var resClauses=[] + var resSent = new Set() + var resSentence = new Set() + var resClauses = [] //let minim=$(" .minimap__content") console.log('start rendering...') listarisultati = Array.from(result) - var listaclausole=Array.from(resultClauses) + var listaclausole = Array.from(resultClauses) - - listaPeriodiRisultato=[] - listaClausoleRisultato=[] + + listaPeriodiRisultato = [] + listaClausoleRisultato = [] //Unità di ricerca è 'frase' if (!listarisultati.length || unitaRicerca == 'frase') { @@ -1925,35 +1929,35 @@ function emphResults(){ if (listaclausole.length) { for (var frase of listaclausole) { var fraseItems = frase.split('-'); - + //loadFrase(fraseItems[0].toString(), fraseItems[3].toString()) loadClausola(fraseItems[0].toString(), fraseItems[3].toString(), fraseItems[1], fraseItems[2]) - resSent.add(fraseItems[0] + '-' + fraseItems[3]+'-'+fraseItems[1] + '-' + fraseItems[2]); + resSent.add(fraseItems[0] + '-' + fraseItems[3] + '-' + fraseItems[1] + '-' + fraseItems[2]); //if (!resSent.has(fraseItems[0] + '-' + fraseItems[3])) { - let tmpocc=fraseItems.slice(-1) - - if (resClauses.filter(clocc => clocc==tmpocc[0]).length==0) { - + let tmpocc = fraseItems.slice(-1) + + if (resClauses.filter(clocc => clocc == tmpocc[0]).length == 0) { + resClauses.push(tmpocc[0]); //resSent.add(fraseItems[0] + '-' + fraseItems[3]+'-'+fraseItems[1] + '-' + fraseItems[2]); resSentence.add(fraseItems[1] + '-' + fraseItems[2]); //resSent.add(fraseItems.slice(-1)) resultsInCantica.push(fraseItems[4]); resultsInCanto.push(fraseItems[4] + fraseItems[5]); - - } + + } } - listaClausoleRisultato=Array.from(resSent); + listaClausoleRisultato = Array.from(resSent); } } //Unità di ricerca è 'periodo' - - if (unitaRicerca=='periodo' && listaclausole.length){ - resultsInCantica=[] - resultsInCanto=[] + + if (unitaRicerca == 'periodo' && listaclausole.length) { + resultsInCantica = [] + resultsInCanto = [] //listaPeriodiRisultato=[] - for (var frase of listaclausole){ - var fraseItems=frase.split('-'); + for (var frase of listaclausole) { + var fraseItems = frase.split('-'); var mysid = '.' + fraseItems[0].toString() //console.log(mysid) listaPeriodiRisultato.push(fraseItems[0].toString()) @@ -1965,44 +1969,44 @@ function emphResults(){ }); */ - if (!resSent.has(fraseItems[0])){ + if (!resSent.has(fraseItems[0])) { resSent.add(fraseItems[0]); resultsInCantica.push(fraseItems[4]); resultsInCanto.push(fraseItems[4] + fraseItems[5]); - } - } + } + } } - - if (listarisultati.length){ + + if (listarisultati.length) { //evidenzia risultati for (ris of listarisultati) { idris = '#' + ris $(idris).addClass("font-weight-bold mark ") minim.contents().find(idris).addClass("font-weight-bold mark ") - + } } - + //ordino la lista dei risultati - listarisultati.sort(function(a, b){return a - b}); - + listarisultati.sort(function(a, b) { return a - b }); + //aggiunge badge con totale risultati accanto alle cantiche - - var totResultN=showBadgeInCantica(resultsInCantica) - + + var totResultN = showBadgeInCantica(resultsInCantica) + //aggiunge badge con totale risultati nel bottone lista risultati var listIcon = ' <ion-icon name="list-outline"></ion-icon>'; - if (totResultN>0){ + if (totResultN > 0) { $("#headingZero").closest('.card').attr('style', 'display: d-flex;') var spanbadgelista = $('<span />'); spanbadgelista.attr('class', 'badge badge-warning badge-pill mx-2 '); - spanbadgelista.append(totResultN+listIcon) + spanbadgelista.append(totResultN + listIcon) spanbadgelista.appendTo($('#cantica0-badge')) } - + //aggiunge badge con totale risultati accanto ai canti showBadgeInCanto(resultsInCanto) - + console.log('badge end...') //calcolo numero dei contesti countResultContexts() @@ -2014,21 +2018,21 @@ function emphResults(){ queryExecuted = true; $(cantoDisplayed).attr('style', 'display: d-flex;'); $("#vistaFrasi").css("display", "none"); - + } catch (err) { //$("#loader").fadeOut(300); $("#searchcomm2").prop("disabled", false); $("#searchcomm2").html('<span class="" role="status" aria-hidden="true"></span> Search'); console.log(err.message); - + }; - - + + }; -//VISUALIZZAZIONE BADGE RISULTATI IN CANTICA + //VISUALIZZAZIONE BADGE RISULTATI IN CANTICA function showBadgeInCantica(resultsInCantica) { var i = 0, totResultN = 0 @@ -2048,7 +2052,7 @@ function emphResults(){ return (totResultN) } -//VISUALIZZAZIONE BADGE RISULTATI IN CANTO + //VISUALIZZAZIONE BADGE RISULTATI IN CANTO function showBadgeInCanto(resultsInCanto) { @@ -2072,21 +2076,23 @@ function emphResults(){ } } } -/* -* REGOLE DI PARSING PER VISUALIZZAZIONE CATEGORIE GRAMMATICALI -*/ + /* + * REGOLE DI PARSING PER VISUALIZZAZIONE CATEGORIE GRAMMATICALI + */ -const categoriegrammaticali={"v":"Verbo", "s":"Sostantivo", "a":"Aggettivo", "p":"Pronome", "r":"Articolo", "b":"Avverbio","e":"Preposizione", - "c":"Congiunzione", "i":"Interiezione", "n":"Onomastica", "f":"Citazione", "l":"Locuzione", - "r-e":"Articolo, Preposizione", "b-v":"Avverbio, Verbo", "p-v":"Pronome, Verbo", - "b-p-v":"Avverbio, Pronome, Verbo", "b-p":"Avverbio, Pronome", - "e-p":"Preposizione, Pronome", "a-s":"Aggettivo, Sostantivo", - "e-r":"Preposizione, Articolo", "v-b":"Verbo, Avverbio", "v-p":"Verbo, Pronome", - "v-p-b":"Verbo, Pronome, Avverbio", "p-b":"Pronome, Avverbio", - "p-e":"Pronome, Preposizione", "s-a":"Sostantivo, Aggettivo",} + const categoriegrammaticali = { + "v": "Verbo", "s": "Sostantivo", "a": "Aggettivo", "p": "Pronome", "r": "Articolo", "b": "Avverbio", "e": "Preposizione", + "c": "Congiunzione", "i": "Interiezione", "n": "Onomastica", "f": "Citazione", "l": "Locuzione", + "r-e": "Articolo, Preposizione", "b-v": "Avverbio, Verbo", "p-v": "Pronome, Verbo", + "b-p-v": "Avverbio, Pronome, Verbo", "b-p": "Avverbio, Pronome", + "e-p": "Preposizione, Pronome", "a-s": "Aggettivo, Sostantivo", + "e-r": "Preposizione, Articolo", "v-b": "Verbo, Avverbio", "v-p": "Verbo, Pronome", + "v-p-b": "Verbo, Pronome, Avverbio", "p-b": "Pronome, Avverbio", + "p-e": "Pronome, Preposizione", "s-a": "Sostantivo, Aggettivo", + } -var categoriegrammaticaliGrammar=`Expression = head:(Filtro){return 'Verbo,'+head.join()} + var categoriegrammaticaliGrammar = `Expression = head:(Filtro){return 'Verbo,'+head.join()} Filtro= fhead:("v")? tail:( transitivita? diatesi? impersonalita? coniugazione? modotempo? persona? funzione? declinazione? @@ -2164,7 +2170,7 @@ _ "whitespace"= " "* ` -var categoriaGrammaticaleSostantivo = ` + var categoriaGrammaticaleSostantivo = ` Expression = head:(Filtro){return 'Sostantivo,'+head.join()} Filtro= fhead:("s")? tail:( genereforma? declinazionesostantivo? generelemma? numersingolareplurale? locuzione?){return tail} @@ -2190,7 +2196,7 @@ _ "whitespace"= " "* ` -var categoriaGrammaticalePreposizione = ` + var categoriaGrammaticalePreposizione = ` Expression = head:(Filtro){return 'Preposizione,'+head.join()} Filtro= fhead:("e")? tail:( tipo1? tipo2? sintassi? complemento1? complemento2?){return tail} @@ -2272,7 +2278,7 @@ complemento2= "k14" {return(" Di Rapporto")} ` -var avverbio = ` Expression = head:(Filtro){return 'Avverbio,'+head.join()} + var avverbio = ` Expression = head:(Filtro){return 'Avverbio,'+head.join()} Filtro= fhead:("b")? tail:( fake? tipo?){return tail} fake= "" @@ -2295,7 +2301,7 @@ _ "whitespace"= " "* ` -var pronome = ` + var pronome = ` Expression = head:(Filtro){return 'Pronome,'+head.join()} Filtro= fhead:("p")? tail:( tipo_pronome? classe_pronome? genere_pronome? @@ -2347,7 +2353,7 @@ Integer "integer" _ "whitespace"= " "* ` -var categoriaGrammaticaleAggettivo = ` + var categoriaGrammaticaleAggettivo = ` Expression = head:(Filtro){return 'Aggettivo,'+head.join()} Filtro= fhead:("a")? tail:( tipo_aggettivo classe_aggettivo? genere_aggettivo? numero_aggettivo? grado_aggettivo? tipo_complemento? tipo_frase? @@ -2430,7 +2436,7 @@ Integer "integer" _ "whitespace"= " "* ` -var categoriaGrammaticaleArticolo = ` + var categoriaGrammaticaleArticolo = ` Expression = head:(Filtro){return 'Articolo,'+head.join()} Filtro= fhead:("r")? tail:( tipo? genere? numero?){return tail} @@ -2455,7 +2461,7 @@ _ "whitespace"= " "* ` -var citazione = ` + var citazione = ` Expression = head:(Filtro){return 'Citazione,'+head.join()} Filtro= fhead:("f") tail:( fake? tipo?){return tail} @@ -2529,17 +2535,17 @@ Integer "integer" _ "whitespace"= " "* ` -//parser per categorie grammaticali -var parserVerbi = peg.generate(categoriegrammaticaliGrammar); -var parserSostantivi = peg.generate(categoriaGrammaticaleSostantivo); -var parserPreposizioni = peg.generate(categoriaGrammaticalePreposizione); -var parserAvverbi = peg.generate(avverbio); -var parserPronomi = peg.generate(pronome); -var parserAggettivi = peg.generate(categoriaGrammaticaleAggettivo); -var parserArticolo = peg.generate(categoriaGrammaticaleArticolo); -var parserCitazione = peg.generate(citazione); -var parserOnomastica = peg.generate(onomastica); -var parserCongiunzione = peg.generate(congiunzione); + //parser per categorie grammaticali + var parserVerbi = peg.generate(categoriegrammaticaliGrammar); + var parserSostantivi = peg.generate(categoriaGrammaticaleSostantivo); + var parserPreposizioni = peg.generate(categoriaGrammaticalePreposizione); + var parserAvverbi = peg.generate(avverbio); + var parserPronomi = peg.generate(pronome); + var parserAggettivi = peg.generate(categoriaGrammaticaleAggettivo); + var parserArticolo = peg.generate(categoriaGrammaticaleArticolo); + var parserCitazione = peg.generate(citazione); + var parserOnomastica = peg.generate(onomastica); + var parserCongiunzione = peg.generate(congiunzione); });