From e514334001ec9d848ef93d1642caa002368d25bd Mon Sep 17 00:00:00 2001 From: nicola Date: Sat, 11 Feb 2023 13:01:48 +0100 Subject: [PATCH] Implementato visualizzazione frasi --- js/cesareBrowse.js | 169 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 158 insertions(+), 11 deletions(-) diff --git a/js/cesareBrowse.js b/js/cesareBrowse.js index bf06433..d4624b5 100644 --- a/js/cesareBrowse.js +++ b/js/cesareBrowse.js @@ -34,7 +34,9 @@ $(document).ready(function() { const closeSTag="}" var cantoDisplayed = "#InfernoCanto_1"; - + var elencoFrasiDisplayed = false; + var queryExecuted = false; + //used in minimap // /*let minimap = document.createElement('div'); @@ -224,11 +226,141 @@ $(" ."+formaClass).hover(function(idx, element) { } }); +/* + * Costruzione e visualizzazione del risultato in frasi. +*/ jQuery(document).delegate(' .lista-risultati', 'click', function(e) { - //var cantica=$(this).siblings(' .btn-link')[0]; - var canticaid=$(this).parent()[0].id.substr(0,8); - console.log('fava lista risultati '+canticaid); - }); + var elementoLista; + var verso = ""; + var numeroVerso; + /*var versi = []; + var tuttiversi = []; + var canti = [];*/ + var testo; + var canto; + var numeroCantica; + var versoCorrente; + + if (elencoFrasiDisplayed){ + elencoFrasiDisplayed = false; + $(cantoDisplayed).attr('style', 'display: d-flex;'); + $("#vistaFrasi").css("display", "none"); + $(this).attr("style", "background-color: ##007bff") + + return; + } + + $(this).attr("style", "background-color: #3da5f4") + + + elencoFrasiDisplayed = true; + + if (!queryExecuted){ + $("#vistaFrasi").attr('style', 'display: d-flex;'); + $(cantoDisplayed).css("display", "none"); + return + } + + queryExecuted = false; + + listarisultati.sort(function(a, b){return a - b}); + elementoLista = getFormaContext(parseInt(listarisultati[0])); + canto = elementoLista[0].canto; + numeroCantica = elementoLista[0].cantica; + + var elencoRisutati = $("#vistaFrasi"); + elencoRisutati.empty(); + var titoloRisultati = $('

') + var titoloCantica = $('

') + titoloCantica.attr("style", "color: DarkBlue") + + var titoloCanto = $('

') + titoloCanto.attr("style", "color: DodgerBlue") + + //titoloRisultati.append("Elenco frasi completo per la query : xxx"); + titoloCantica.append(getCantica(numeroCantica)); + titoloCanto.append("Canto "+canto); + + titoloRisultati.appendTo(elencoRisutati); + titoloCantica.appendTo(elencoRisutati); + titoloCanto.appendTo(elencoRisutati); + + $(cantoDisplayed).css("display", "none"); + + for (risultato of listarisultati){ + elementoLista = getFormaContext(parseInt(risultato)) + numeroVerso = elementoLista[0].verso; + if (elementoLista[0].cantica != numeroCantica){ + numeroCantica = elementoLista[0].cantica; + var titoloCantica = $('

') + titoloCantica.attr("style", "color: DarkBlue") + + titoloCantica.append(getCantica(numeroCantica)); + + titoloCantica.appendTo(elencoRisutati); + + /*canti.push(versi) + tuttiversi.push(canti); + versi = []; + canti = []; */ + canto = elementoLista[0].canto; + var titoloCanto = $('

') + titoloCanto.attr("style", "color: DodgerBlue") + + titoloCanto.append("Canto "+canto); + titoloCanto.appendTo(elencoRisutati); + + } + verso += numeroVerso+ " " + elementoLista[0].testo + " "; + for (i=1;i < elementoLista.length;i++){ + + if (elementoLista[i].canto == canto){ + if (elementoLista[i].verso == numeroVerso){ + if (elementoLista[i].posizione == risultato){ + verso += ""+elementoLista[i].testo + " "+"" + }else{ + verso += elementoLista[i].testo + " " + } + }else{ + //versi.push(verso) + var elencoVersi = $('

') + elencoVersi.attr("style", "line-height: 0.5em") + versoCorrente = elencoVersi; + elencoVersi.append(verso) + elencoVersi.appendTo(elencoRisutati); + + verso = ""; + numeroVerso = elementoLista[i].verso; + verso += numeroVerso+ " " + elementoLista[i].testo + " " ; + } + }else{ + //canti.push(versi) + //versi = []; + canto = elementoLista[i].canto; + var titoloCanto = $('

') + titoloCanto.attr("style", "color: DodgerBlue") + + titoloCanto.append("Canto "+canto); + titoloCanto.appendTo(elencoRisutati); + } + } + versoCorrente.attr("style", "color: red") + canto = elementoLista[i-1].canto; + //versi.push(verso); + var elencoVersi = $('

') + elencoVersi.attr("style", "line-height: 0.5em") + elencoVersi.append(verso+"

") + elencoVersi.append("

") + + elencoVersi.appendTo(elencoRisutati); + + verso = ""; + console.log('risultato '+risultato + " verso "+elementoLista[0].verso + " canto "+elementoLista[0].canto) + } + /*canti.push(versi) + tuttiversi.push(canti);*/ + $("#vistaFrasi").attr('style', 'display: d-flex;'); + }); jQuery(document).delegate('.navig-canto', 'click', function(e) { resetFrasi() @@ -298,6 +430,15 @@ $(" ."+formaClass).hover(function(idx, element) { //Utility functions + function getCantica(numeroCantica){ + + switch (numeroCantica){ + case 1: return("Inferno"); + case 2: return("Purgatorio"); + case 3: return("Paradiso"); + } + } + function formatTTContent(categ, syntType){ var details=[]; @@ -564,11 +705,11 @@ $(" ."+formaClass).hover(function(idx, element) { var divDialoghi = $('
') var divMetafore = $('
') - var titoloFrasi = $('

') + //var titoloFrasi = $('

') var titoloDialoghi = $('

') var titoloMetafore = $('

') - titoloFrasi.append("Frasi:"); + //titoloFrasi.append("Frasi:"); titoloDialoghi.append("Dialoghi:"); titoloMetafore.append("Metafore:"); @@ -584,7 +725,7 @@ $(" ."+formaClass).hover(function(idx, element) { divDialoghi.css("display", "none") divMetafore.css("display", "none") - titoloFrasi.appendTo(divFrasi) + //titoloFrasi.appendTo(divFrasi) titoloDialoghi.appendTo(divDialoghi) titoloMetafore.appendTo(divMetafore) @@ -731,6 +872,8 @@ $(" ."+formaClass).hover(function(idx, element) { //aggiunge badge con totale risultati accanto alle cantiche i = 0 var totResultN=0; + var listIcon = ''; + for (cantica of cantiche) { i += 1 let count = resultsInCantica.reduce((n, x) => n + (x === cantica), 0); @@ -738,7 +881,7 @@ $(" ."+formaClass).hover(function(idx, element) { totResultN+=count var spanbadgecantica = $(''); spanbadgecantica.attr('class', 'badge badge-primary badge-pill mx-2 lista-risultati'); - spanbadgecantica.append(count) + spanbadgecantica.append(count+listIcon) spanbadgecantica.appendTo($('#cantica' + i + '-badge')) //$('#cantica' + i).after(spanbadgecantica) } @@ -748,7 +891,7 @@ $(" ."+formaClass).hover(function(idx, element) { $("#headingZero").attr('style', 'display: d-flex;') var spanbadgelista = $(''); spanbadgelista.attr('class', 'badge badge-primary badge-pill mx-2 lista-risultati'); - spanbadgelista.append(totResultN) + spanbadgelista.append(totResultN+listIcon) spanbadgelista.appendTo($('#cantica0-badge')) } //aggiunge badge con totale risultati accanto ai canti @@ -767,7 +910,7 @@ $(" ."+formaClass).hover(function(idx, element) { if (count>0){ var spanbadge = $(''); spanbadge.attr('class', cantobadgeclass); - spanbadge.append(count) + spanbadge.append(count+listIcon) //spanbadge.appendTo($('[name="' + cantica + 'Canto ' + k + '"]')) spanbadge.appendTo($nctags.filter('[name="' + cantica + 'Canto ' + k + '"]')) //spanbadge.insertAfter($('[name="'+cantica+'Canto '+k+'"]')) @@ -782,6 +925,10 @@ $(" ."+formaClass).hover(function(idx, element) { } }); + queryExecuted = true; + $(cantoDisplayed).attr('style', 'display: d-flex;'); + $("#vistaFrasi").css("display", "none"); + elencoFrasiDisplayed = false; } catch (err) { console.log(err.message);