From 352457dc4e26b1681df61a5985a392d097c728a7 Mon Sep 17 00:00:00 2001 From: Luca Trupiano Date: Mon, 24 Mar 2025 16:28:06 +0100 Subject: [PATCH] Aggiunta stampa (da completare) e riportate tutte le modifiche della 5.1 --- css/custom2_4.3.css | 4 +- index_5.2.html | 2325 +++++++++++++++++++++++++++++++ js/browseMgr_5.2.js | 3228 +++++++++++++++++++++++++++++++++++++++++++ js/dataMgr_5.2.js | 630 +++++++++ js/script_5.2.js | 2003 +++++++++++++++++++++++++++ js/syntgraph_5.2.js | 150 ++ js/utilsMgr_5.2.js | 2305 ++++++++++++++++++++++++++++++ 7 files changed, 10644 insertions(+), 1 deletion(-) create mode 100644 index_5.2.html create mode 100644 js/browseMgr_5.2.js create mode 100644 js/dataMgr_5.2.js create mode 100644 js/script_5.2.js create mode 100644 js/syntgraph_5.2.js create mode 100644 js/utilsMgr_5.2.js diff --git a/css/custom2_4.3.css b/css/custom2_4.3.css index da40dd7..ce2e1d9 100644 --- a/css/custom2_4.3.css +++ b/css/custom2_4.3.css @@ -417,7 +417,9 @@ a[target="_blank"]::after { border-color: rgb(68, 41, 48) !important; background-color: rgb(68, 41, 48) !important; } - +.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before { + opacity: 0.4 !important; +} .custom-control-input:active~.custom-control-label::before { background-color: rgba(65, 93, 67, 0.5) !important; border-color: rgba(65, 93, 67, 0.5) !important; diff --git a/index_5.2.html b/index_5.2.html new file mode 100644 index 0000000..813b305 --- /dev/null +++ b/index_5.2.html @@ -0,0 +1,2325 @@ + + + + + +LiDa Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+ +
+ +
+ + + +
+ +
 
+
+
+
+
+
+
+
+
+
+
+ + +
+ + + +
+ +
+ +
+
+ Nessun commento visualizzato +
+
+ +
+ +
+ +
+ +
+ +
+
+ Nessuna struttura visualizzata +
+ + + +
+ +
+
+ +
+ + +
+
+
+ +
+
+
+
+ + + +
+ +
+ + + + + +
+ + + + + + + + + + + \ No newline at end of file diff --git a/js/browseMgr_5.2.js b/js/browseMgr_5.2.js new file mode 100644 index 0000000..f0d6282 --- /dev/null +++ b/js/browseMgr_5.2.js @@ -0,0 +1,3228 @@ +/** + * + */ +import { getVersiConCitazioni, queryRiferimenti, getListaRis, cleanListaRis, getRisultatiRiferimenti, getListaIdCommenti, queryRiferimentimul, versoCommentato } from './dataMgr_5.2.js'; +import { getJsonQuery, emptyStructCard, setCurrentPage, managePage, emptyNoteList } from './script_5.2.js'; +import { resetGraphStr } from './syntgraph_5.2.js' + + +export var manageRisultatoCommmenti +export var resetResult; +export var lsentid; +export var lisid; +export const formaClass = 'frm' +export var vistaPeriodi = false +var vistaDialoghi = false +var vistaRiferimenti = true +export var listaPeriodiRisultato; +export var listaClausoleRisultato; +export var numeroContesti; +export var cantoDisplayed; +export var showOffset = 30; +export var graphTextReset; +export var isSearchRiferimenti = false; +export var showFrasi; +export var listarisultati = []; + +const cantobadgeclass = 'badge badge-outline-warning badge-pill' +const hdnNamespace = 'http://dantenetwork.it/data/commedia/' +const syntitNamespace = 'https://dantenetwork.it/ontology/syntit/current/' + + + +$(document).ready(function() { + //removeGraph = false; + const dialogspeakers = { + "Beatrice": "diaBeatrice", + "Dante": "diaDante", + "Virgilio": "diaVirgilio", + "Cacciaguida": "diaCacciaguida", + "san Bernardo": "diaSanBernardo" + } + const dialogaltri = 'diaAltri' + const versiPerGruppo = 5; + var listaClausoleRisultatoContesti = [] + + var listaRisultatiCommenti = [] + graphTextReset = function() { manageResults() } + + const sparqlGenerator = sparqljs.Generator; + const myEngine = new Comunica.QueryEngine(); + + const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commedia/query"; + //const sparqlEndpoint = "https://lida.dantenetwork.it/fuseki/commedia/query"; + var elencoRiferimenti; + + var shownSentenceList = new Set() + var filterBottonAdded = false; + var showingComments = false; + listaPeriodiRisultato = []; + listaClausoleRisultato = [] + /*var commentsArray = [] + var commentsJson = {}*/ + var commentsSQL = {} + var resultcommentsSQL = {} + /*var resultSentences = new Set()*/ + const cantiche = ["Inferno", "Purgatorio", "Paradiso"] + var loadedCanti = new Set(); + const openSTag = "{" + const closeSTag = "}" + + cantoDisplayed = "#InfernoCanto_1"; + + var prevCantoDisplayed = "#InfernoCanto_1"; + var contextLength = 3; + + var idCitazione = "citazioneFrase"; + + initCitazioni(); + + resetResult = function() { + //console.log('clean result') + cleanSearchResult() + //esprlogica = [] + } + + //hideMinimap(); + createAllDivCanti() + //const start = performance.now(); + showCanto(formeprima, '1', '1') + $("#InfernoCanto_1").attr('style', 'display: d-flex;') + loadedCanti.add("InfernoCanto_1") + drawMinimap("#InfernoCanto_1", false) + const minim = $(" .minimap__content") + + + $('#opzioniVista :checkbox').change(function() { + const changedOption = $(this)[0].id; + switch (changedOption + "|" + this.checked) { + case "visPeriodi|true": + vistaPeriodi = true + loadFrasi(); + break; + case "visPeriodi|false": + $("#vistaFrasi").css("display", "none"); + resetFrasi() + manageResults() + vistaPeriodi = false + break; + case "visRiferimenti|true": + vistaRiferimenti = true + initCitazioni() + $(cantoDisplayed).find(" .showcomments").each(function() { + $(this).css("display", "inline-block"); + }) + //$(" .showcomments").css("display", "inline-block"); + minim.contents().find(" .showcomments").each(function() { + $(this).css('display', 'inline-block'); + }) + + break; + case "visRiferimenti|false": + $(cantoDisplayed).find(" .showcomments").each(function() { + $(this).css("display", "none"); + }) + //$(".showcomments").css("display", "none"); + minim.contents().find(" .showcomments").each(function() { + $(this).css('display', 'none'); + }) + $('#displaynote').empty() + $('#displaynote').append($(emptyNoteList)) + vistaRiferimenti = false + break; + case "visDialoghi|true": + 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 + 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 } + + }); + }); + + + + $(" ." + 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 { + //showSentenceStructure (sentenceId) + shownSentenceList.add(sentenceId) + + + } + }); + + + $(" ." + formaClass).hover(function(idx, element) { + + var sentenceId = $(this).attr('class').split(' ')[0].split('_') + var tmplisid = sentenceId[0] + '_' + sentenceId[1] + '_' + sentenceId[3] + lsentid = $(this).attr('class').split(' ')[0] + lisid = tmplisid + }); + + + /* + * Espansione del contesto + */ + + jQuery(document).delegate(' .espandiFrase, .riduciFrase', 'click', function() { + if ($(this).hasClass("disabled")) { + return; + }; + //var posizioniEspansione = [] + var cid = $(this).attr('id'); + var parcid = cid.split('_'); + var posVerso + var reit = '#versiFrase' + parcid[4] + var expcontextLength = $(reit + " > li").length + if (cid.includes('_er_')) { + expcontextLength = contextLength + } else { + posVerso = $(reit).attr('posVerso') + if (posVerso == 1) { // caso inizio o fine canto + expcontextLength += contextLength; + } + } + + //svuoto la lista di versi + $(reit).empty() + //genero la nuova lista di versi + var versiContestoExp = getFormaContext(parseInt(parcid[3]), expcontextLength); + var divVersoExp = '' + var setVersicontestoExp = new Set() + for (var forma of versiContestoExp) { + if (!setVersicontestoExp.has(forma.verso)) { + //divVersoExp = createDivVersoLI(forma.cantica + 1, forma.verso, forma.canto) + divVersoExp = createDivVersoGenericLi(forma.cantica + 1, forma.verso, forma.canto) + $(reit).append(divVersoExp) + setVersicontestoExp.add(forma.verso) + } + createSpanFormeNew(forma.testo, forma.catg, 'e' + forma.posizione, forma.periodo, forma.funzperiodo, divVersoExp) + //posizioniEspansione.push('e' + forma.posizione) + } + + if (cid.includes('_er_')) { + ///$("#"+cid).css("display", "none"); + $("#" + cid).removeClass("btn-outline-primary"); + $("#" + cid).addClass("btn-outline-secondary"); + $("#" + cid).addClass("disabled"); + } + else { + cid = cid.replace("ex", "er"); + ///$("#"+cid).attr('style', 'display: d-flex;'); + $("#" + cid).removeClass("btn-outline-secondary"); + $("#" + cid).removeClass("disabled"); + $("#" + cid).addClass("btn-outline-primary"); + } + + + //evidenzio risultato + + for (var ris of listarisultati) { + var idris = '#e' + ris + $(idris).addClass("font-weight-bold mark ") + } + + //gestisco risultati se unità di ricerca è periodo + if (listaPeriodiRisultato.length) { + for (var msid of listaPeriodiRisultato) { + loadPeriodo(msid) + + } + } + //gestisce risultati se unità di ricerca è frase + if (listaClausoleRisultato.length) { + for (var clsid of listaClausoleRisultato) { + let tmpid = clsid.split('-') + 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. + */ + + + //var prevstart = -1 + //var prevoffset = -1 + jQuery.manageResultList = function manageResultList(start, offset = showOffset) { + + + //console.log('Paginazione...') + //prevstart = start + //prevoffset = offset + if (cantoDisplayed != '#vistaFrasi') { + prevCantoDisplayed = cantoDisplayed; + $(cantoDisplayed).css("display", "none"); + //visualizzo + $("#vistaFrasi").attr('style', 'display: d-flex;'); + cantoDisplayed = "#vistaFrasi"; + } + + //listarisultati.sort(function(a, b){return a - b}); + showFrasi(start, offset) + + if (vistaPeriodi) { + loadFrasi(); + } + if (vistaDialoghi) { + loadDialoghi(); + } + addFormaListenersInCanto() + drawMinimap('#vistaFrasi', false) + + } + + function countResultContexts() { + var numeroRisultati = 0; + if (listarisultati.length) { + var ultimaPosizione = -1; + for (var risultato of listarisultati) { + + if (risultato <= ultimaPosizione) { + continue; + } + numeroRisultati = numeroRisultati + 1; + + ultimaPosizione = getContextLastPosition(risultato, contextLength); + } + numeroContesti = numeroRisultati + //console.log('num contesti ' + numeroContesti) + return (numeroRisultati) + } + + + if (listaClausoleRisultato.length) { + numeroContesti = listaClausoleRisultatoContesti.length + return (listaClausoleRisultatoContesti.length) + + } + numeroContesti = numeroRisultati + return (numeroRisultati) + } + + function getResInPage(startcont, endcont) { + var res = []; + var contaContesti = 0 + //console.log(listaClausoleRisultato) + if (listarisultati.length) { + var ultimaPosizione = -1; + for (var risultato of listarisultati) { + if (risultato <= ultimaPosizione) { + continue; + } + contaContesti = contaContesti + 1; + if (contaContesti >= startcont && contaContesti < endcont) { + res.push(risultato) + } + if (contaContesti > endcont) + break; + ultimaPosizione = getContextLastPosition(risultato, contextLength); + } + //ordino la lista dei risultati + res.sort(function(a, b) { return a - b }); + return (res) + } + if (listaClausoleRisultatoContesti.length && !listarisultati.length) { + var lim = endcont + if (listaClausoleRisultatoContesti.length <= endcont) + lim = listaClausoleRisultatoContesti.length - 1 + for (let i = startcont; i <= lim; i++) { + res.push(listaClausoleRisultatoContesti[i]) + } + //res.sort(function(a, b) { puno = a[0].split('-')[3]; pdue = b[0].split('-')[3]; return parseInt(puno) - parseInt(pdue) }); + return (res) + } + return (res) + } + + showFrasi = function(start, offset = showOffset, whereToDisplay = "#vistaFrasi") { + var canto, numeroCantica; + var divVerso; + var elencoRisutati = $(whereToDisplay); + //elencoRisutati.empty(); + + var numeroRisultato = 0; + var ultimaPosizione = 0; + var numeroVersi; + //const intsup = Math.min(start + offset, listarisultati.length) + var t0 = performance.now(); + var resincontext = getResInPage(start, start + offset) + var t1 = performance.now(); + + for (let i = 0; i < resincontext.length; i++) { + //risultato = listarisultati[i]; + var risultato = resincontext[i]; + numeroRisultato++; + + if (!risultato.toString().includes('-') && risultato <= parseInt(ultimaPosizione)) { + continue; + } + var versiContesto = '' + var ctxpivot = 0 + if (!Array.isArray(risultato)) { + risultato = parseInt(risultato) + versiContesto = getFormaContext(risultato, contextLength); + ctxpivot = risultato + } + else { + versiContesto = getFraseContext(risultato, contextLength); + if (versiContesto.length) { + var tmind = Math.floor(versiContesto.length / 2); + ctxpivot = versiContesto[tmind]['posizione'] + } + } + + + var setVersicontesto = new Set() + divVerso = '' + numeroCantica = 0 + canto = 0 + //var titoloCanto = $('
') + var versiIniziali = $('
') + var listaVersi = $('
    ') + + listaVersi.attr('id', "Frase" + numeroRisultato); + versiIniziali.attr('id', "versiFrase" + numeroRisultato); + numeroVersi = 0; + for (var forma of versiContesto) { + if (setVersicontesto.size == 0) { + numeroCantica = forma.cantica + canto = forma.canto + } + if (!setVersicontesto.has(forma.verso)) { + //divVerso = createDivVersoLI(forma.cantica + 1, forma.verso, forma.canto) + divVerso = createDivVersoGenericLi(forma.cantica + 1, forma.verso, forma.canto) + versiIniziali.append(divVerso) + listaVersi.append(versiIniziali) + elencoRisutati.append(listaVersi) + setVersicontesto.add(forma.verso) + numeroVersi++; + } + createSpanFormeNew(forma.testo, forma.catg, 'e' + forma.posizione, forma.periodo, forma.funzperiodo, divVerso) + } + ultimaPosizione = forma.posizione; + + if (numeroVersi < contextLength + 1) { + versiIniziali.attr('posVerso', 1); // inizio o fine canto + } else { + versiIniziali.attr('posVerso', 9999); + } + + var comandi = $('
    ') + comandi.attr('id', "comandiFrase" + numeroRisultato) + //comandi.attr('class', 'comandi col flex-nowrap d-inline justify-content-between pl-1 pb-2 ml-2 mb-2 border-bottom'); + + var comandiGrp = $('
    ') + comandiGrp.attr('class', 'btn-group flex-nowrap d-inline pr-3 mt-1 mr-3 align-text-bottom'); + comandiGrp.attr('role', "group") + + var spanBadgeExpand = $('