From 70b036d22c0317d444b43f2da922e0852b3a2214 Mon Sep 17 00:00:00 2001 From: cesare Date: Thu, 9 Mar 2023 12:49:29 +0100 Subject: [PATCH] aggiunta gestione per 'frasi' come rsearch unit, call a getDimensionDiv() sostituite con drawminimap --- js/cesareBrowse.js | 246 ++++++++++++++++++++++++++++++--------------- js/syntgraph.js | 8 +- 2 files changed, 174 insertions(+), 80 deletions(-) diff --git a/js/cesareBrowse.js b/js/cesareBrowse.js index 0fad6da..3ef4900 100644 --- a/js/cesareBrowse.js +++ b/js/cesareBrowse.js @@ -9,6 +9,8 @@ var lsentid; const formaClass='frm' var selectedVista; var listaPeriodiRisultato; +var listaClausoleRisultato; + $(document).ready(function() { lsid=''; @@ -25,6 +27,7 @@ $(document).ready(function() { //var currentMinimap = '' var listarisultati = []; listaPeriodiRisultato = []; + listaClausoleRisultato=[] var resultSentences = new Set() var minimapScrolling = false; var displayId = 'displaycanto' @@ -81,69 +84,7 @@ $("#valoreVista").on('change', function() { } }); -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 loadPeriodo(idperiodo) { - - - $(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] - - $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); - }) -} - -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 resetFrasi(){ - - $(cantoDisplayed).find(' .sentencetag').each(function() { - $(this).css('display', 'none'); - }) - $(cantoDisplayed).find(' .'+formaClass).each(function() { - //console.log(colorssp(mapsynttypestopalette[stp])) - $(this).css('color', ''); - }) - //let minim=$(" .minimap__content") - minim.contents().find(" .sentencetag").each(function(){ - $(this).css('display', 'none'); - }) - minim.contents().find(' .'+formaClass).each(function() { - $(this).css('color', ''); - }) -} $(" ."+formaClass).each(function(idx, element) { @@ -293,10 +234,22 @@ $(" ."+formaClass).hover(function(idx, element) { } } + + //gestisce risultati se unità di ricerca è frase + if (listaClausoleRisultato.length){ + for (clsid of listaClausoleRisultato){ + let tmpid=clsid.split('-') + loadFrase(tmpid[0], tmpid[1]) + + } + } //aggiungo listeners addFormaListeners() + //disegno minimap + drawMinimap('#vistaFrasi') + }); function aggiungiDopo(fraseDiv, ultimoVersoDivDopo,divAggiuntiDopo,cantoDiv){ @@ -349,6 +302,7 @@ $(" ."+formaClass).hover(function(idx, element) { citazioneFrase.appendTo($(idUltimoVerso)); $("#"+cid).css("display", "none"); + drawMinimap('#vistaFrasi') }); @@ -374,7 +328,8 @@ $(" ."+formaClass).hover(function(idx, element) { cantoDisplayed = "#vistaFrasi"; if (!queryExecuted){ $("#vistaFrasi").attr('style', 'display: d-flex;'); - manageMM("#vistaFrasi") + //manageMM("#vistaFrasi") + drawMinimap('#vistaFrasi') if (selectedVista=='frasi'){ loadFrasi(); } @@ -471,15 +426,25 @@ $(" ."+formaClass).hover(function(idx, element) { //evidenzio i periodi se unità di ricerca è impostato come periodo if (listaPeriodiRisultato.length){ - for (msid of listaPeriodiRisultato){ - loadPeriodo(msid) + 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]) + + } + } //visualizzo $("#vistaFrasi").attr('style', 'display: d-flex;'); - manageMM("#vistaFrasi") + //manageMM("#vistaFrasi") + drawMinimap('#vistaFrasi') if (selectedVista=='frasi'){ @@ -534,7 +499,8 @@ $(" ."+formaClass).hover(function(idx, element) { $("#" + $(this).attr('name').replace(" ", "_")).attr('style', 'display: d-flex;') - manageMM("#" + $(this).attr('name').replace(" ", "_")) + drawMinimap("#" + $(this).attr('name').replace(" ", "_")) + if (selectedVista=='frasi'){ loadFrasi(); @@ -591,6 +557,104 @@ $(" ."+formaClass).hover(function(idx, element) { } + + 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 loadPeriodo(idperiodo) { + + + $(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] + + $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); + }) +} + +function loadFrase(idperiodo, funzionefrase) { + + + $(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() { + var mpstp=$(this).attr('class').split(" ")[1] + if(mpstp.trim()==funzionefrase) + $(this).css('color', colorssp(mapsynttypestopalette[mpstp])); + }) +} + +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 resetFrasi(){ + + $(cantoDisplayed).find(' .sentencetag').each(function() { + $(this).css('display', 'none'); + }) + $(cantoDisplayed).find(' .'+formaClass).each(function() { + //console.log(colorssp(mapsynttypestopalette[stp])) + $(this).css('color', ''); + }) + //let minim=$(" .minimap__content") + minim.contents().find(" .sentencetag").each(function(){ + $(this).css('display', 'none'); + }) + minim.contents().find(' .'+formaClass).each(function() { + $(this).css('color', ''); + }) + //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]) + + } + } +} + function getCantica(numeroCantica){ switch (numeroCantica){ @@ -633,7 +697,7 @@ $(" ."+formaClass).hover(function(idx, element) { for (cat of categs){ mycat.push(proprietaForma(cat)) } - console.log(mycat.join('-')) + //console.log(mycat.join('-')) }else{ mycat.push(proprietaForma(categ)); } @@ -685,6 +749,12 @@ $(" ."+formaClass).hover(function(idx, element) { $(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) { @@ -699,11 +769,12 @@ $(" ."+formaClass).hover(function(idx, element) { listarisultati = [] listaPeriodiRisultato=[] + listaClausoleRisultato=[] resultSentences=new Set() if(cantoDisplayed=='#vistaFrasi') cantoDisplayed=prevCantoDisplayed $(cantoDisplayed).attr('style', 'display: d-flex;'); - manageMM (cantoDisplayed) + //manageMM (cantoDisplayed) //drawMinimap(cantoDisplayed) } @@ -794,12 +865,22 @@ $(" ."+formaClass).hover(function(idx, element) { }) + //gestione risultati + if (listaPeriodiRisultato.length){ for (msid of listaPeriodiRisultato){ loadPeriodo(msid) } - } + } + + if (listaClausoleRisultato.length){ + for (clsid of listaClausoleRisultato){ + let tmpid=clsid.split('-') + loadFrase(tmpid[0], tmpid[1]) + + } + } if (listarisultati.length){ //evidenzia risultati @@ -999,7 +1080,8 @@ $(" ."+formaClass).hover(function(idx, element) { //regione della clausola var clfrom=binding.get('clfr').value; var clto=binding.get('clto').value; - var cltype=binding.get('clatype').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/','') //id del periodo var sentenceid=binding.get('sentence').value.replace('http://dantenetwork.it/data/commedia/','') @@ -1009,7 +1091,7 @@ $(" ."+formaClass).hover(function(idx, element) { resultsInCantica.push(cantica); resultsInCanto.push(cantica + canto) } - resultClauses.add(sentenceid + "-" +clfrom+'-'+clto+"-"+cltype+'-'+cantica+'-'+canto) + resultClauses.add(sentenceid + "-" +clfrom+'-'+clto+"-"+clfunction.trim().replace('ordinateClause','').replace('MainClause', 'Ma')+'-'+cantica+'-'+canto) resultSentences.add(sentenceid) }); @@ -1021,35 +1103,41 @@ $(" ."+formaClass).hover(function(idx, element) { var listaclausole=Array.from(resultClauses) cantiche = ["Inferno", "Purgatorio", "Paradiso"] - + listaPeriodiRisultato=[] + listaClausoleRisultato=[] + //Unità di ricerca è 'frase' if (!listarisultati.length || unitaRicerca == 'frase') { resultsInCantica = [] resultsInCanto = [] - listaPeriodiRisultato = [] + //listaPeriodiRisultato = [] if (listaclausole.length) { for (var frase of listaclausole) { var fraseItems = frase.split('-'); + loadFrase(fraseItems[0].toString(), fraseItems[3].toString()) + /* for (var p = parseInt(fraseItems[1]); p < parseInt(fraseItems[2]) + 1; p++) { listarisultati.push(p) } - + */ if (!resSent.has(fraseItems[0] + '-' + fraseItems[3])) { + resSent.add(fraseItems[0] + '-' + fraseItems[3]) resultsInCantica.push(fraseItems[4]); resultsInCanto.push(fraseItems[4] + fraseItems[5]) - } - + } } + listaClausoleRisultato=Array.from(resSent) } } + //Unità di ricerca è 'periodo' if (unitaRicerca=='periodo' && listaclausole.length){ resultsInCantica=[] resultsInCanto=[] - listaPeriodiRisultato=[] + //listaPeriodiRisultato=[] for (var frase of listaclausole){ var fraseItems=frase.split('-'); var mysid = '.' + fraseItems[0].toString() diff --git a/js/syntgraph.js b/js/syntgraph.js index cacc2bd..b55b264 100644 --- a/js/syntgraph.js +++ b/js/syntgraph.js @@ -22,7 +22,7 @@ document.addEventListener("dblclick", function(e){ var periodograph=document.getElementById("periodograph"); if (periodograph!=null){ - console.log('val '+document.getElementById("periodograph").getAttribute('name')) + //console.log('val '+document.getElementById("periodograph").getAttribute('name')) let showngr=document.getElementById("periodograph").getAttribute('name').split("_") var tmpsent=showngr[0]+"_"+showngr[1]+"_s_"+showngr[2] periodograph.parentNode.removeChild(periodograph); @@ -34,7 +34,12 @@ document.addEventListener("dblclick", function(e){ sentence[i].style.removeProperty('color'); sentence[i].classList.remove('font-weight-normal'); + } + var matches = listaClausoleRisultato.filter(s => s.includes(sentence[i].classList[0])); + //console.log('matches for clausole '+matches) + + resetMinimap(tmpsent) @@ -94,6 +99,7 @@ document.addEventListener("dblclick", function(e){ //showMinimap() }); +//manage clauses function resetMinimap(sentid){ //var iframe = document.getElementsByClassName("minimap__content");