From 0b4674f8758a966bc0935dd057b6d59f9114aca5 Mon Sep 17 00:00:00 2001 From: cesare Date: Fri, 31 Jan 2025 10:50:55 +0100 Subject: [PATCH] query sui commenti draft --- js/browseMgr_5.0.js | 36 ++++++++++++++-------------- js/dataMgr.js | 57 +++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 72 insertions(+), 21 deletions(-) diff --git a/js/browseMgr_5.0.js b/js/browseMgr_5.0.js index fd7cd6c..e43ae7f 100644 --- a/js/browseMgr_5.0.js +++ b/js/browseMgr_5.0.js @@ -3,7 +3,7 @@ */ import { getJsonQuery, emptyStructCard } from './script_5.0.mod.js'; import {resetGraphStr} from './syntgraph_5.0.js' -import { getVersiConCitazioni } from './dataMgr.js'; +import { getVersiConCitazioni, queryRiferimenti} from './dataMgr.js'; export var resetResult; export var lsentid; @@ -43,10 +43,10 @@ $(document).ready(function() { var listarisultati = []; listaPeriodiRisultato = []; listaClausoleRisultato = [] - var commentsArray = [] - var commentsJson = {} + /*var commentsArray = [] + var commentsJson = {}*/ var commentsSQL = {} - var resultSentences = new Set() + /*var resultSentences = new Set()*/ const cantiche = ["Inferno", "Purgatorio", "Paradiso"] var loadedCanti = new Set(); const openSTag = "{" @@ -58,11 +58,7 @@ $(document).ready(function() { var contextLength = 3; var showOffset = 30; var idCitazione = "citazioneFrase"; - -// console.log(getAutoriFontiCitazioni()) -// console.log(getCommentatori()) - - var initial=true; + initCitazioni(); resetResult = function() { @@ -270,10 +266,7 @@ $(document).ready(function() { }) - /* - * Costruzione e visualizzazione del risultato in frasi. - */ - + /* * Costruzione e visualizzazione del risultato in frasi. */ @@ -898,13 +891,14 @@ $(document).ready(function() { } var canto = mcanto.split('_')[1] var idCommento = "Commento_" + idcantica + "_" + canto + "_"; - var myid=cantica+'_Canto_'+canto+'_' - var minimapid=cantica+'Canto_'+canto + var idverso=cantica+'_Canto_'+canto+'_' + var idminimap=cantica+'Canto_'+canto /*console.log(myid)*/ if (canto.length == 1) canto = '0' + canto //commentsJson = getVersiConCitazioniJson(cantica, canto) var mresult =await getVersiConCitazioni(cantica, canto) + commentsSQL= Object.groupBy(mresult, ({ VersoCitazione }) => VersoCitazione); var tmpkeys=[] @@ -919,12 +913,12 @@ $(document).ready(function() { var pio=$( "#"+idCommento+t) if(pio.length) break; - var elverso=$( "#"+myid+t)//$("li[value='"+t+"']") - console.log(elverso) + var elverso=$( "#"+idverso+t)//$("li[value='"+t+"']") + //console.log(elverso) createCommentSpan(idCommento+t, elverso, commentsSQL[ke].length) } - drawMinimap("#" + minimapid, false) + drawMinimap("#" + idminimap, false) console.log (commentsSQL) } @@ -1499,7 +1493,7 @@ $(document).ready(function() { listaPeriodiRisultato = [] listaClausoleRisultato = [] listaClausoleRisultatoContesti = [] - resultSentences = new Set() + //resultSentences = new Set() if (cantoDisplayed == '#vistaFrasi') cantoDisplayed = prevCantoDisplayed $(cantoDisplayed).attr('style', 'display: d-flex;'); @@ -1531,6 +1525,10 @@ $(document).ready(function() { unitaRicerca = 'forma' else unitaRicerca = jsonQuery['unitaRicerca'] + if (unitaRicerca=='riferimenti'){ + queryRiferimenti(jsonQuery.Riferimento100) + return + } console.log("got json query, unita ricerca: " + unitaRicerca) if (jsonQuery['QueryAvanzata'] == 0 && jsonQuery['Clausola0']['queryText'] == '') { alert('Digitare una stringa da cercare') diff --git a/js/dataMgr.js b/js/dataMgr.js index 5e6a250..bc5266c 100644 --- a/js/dataMgr.js +++ b/js/dataMgr.js @@ -5,6 +5,7 @@ import * as duckdb from 'https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0 var rif_commentatori=[]; var rif_autori=[]; var rif_areetematiche=[]; +var rif_fonti=[]; const JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles(); @@ -53,6 +54,8 @@ var table=await conn.query(` const result2 = table.toArray().map((row) => row.toJSON()); rif_commentatori=result2.map((x) => x['Com']); + + /*rif_commentatori.sort((a, b) => { var sre= (a.replace(/^\D+/g, '')-b.replace(/^\D+/g, '')) console.log(sre) @@ -67,10 +70,22 @@ var table=await conn.query(` const result3 = table.toArray().map((row) => row.toJSON()); rif_areetematiche= result3.map((x) => x['CA']); -//console.log(rif_areetematiche) + + +var table1=await conn.query(` + select distinct TiFo from riferimenti; +`); +const result4 = table1.toArray().map((row) => row.toJSON()); +rif_fonti=result4.map((x) => x['TiFo']); + +//console.log(rif_fonti) await conn.close(); console.log('done') +export function getFontiS() { + + return rif_fonti +} export function getAreeTematicheS() { @@ -89,7 +104,7 @@ export function getCommentatoriS() { export async function getVersiConCitazioni(canticapar = '', cantopar = '') { - let citcantiche = ['Inferno', 'Purgatorio', 'Paradiso'] + //let citcantiche = ['Inferno', 'Purgatorio', 'Paradiso'] if (canticapar == '') { return } @@ -113,3 +128,41 @@ export async function getVersiConCitazioni(canticapar = '', cantopar = '') { return result4 } +export async function queryRiferimenti(filtro){ + if(filtro==null){ + return + } + console.log(filtro) + const tconn= await db.connect(); + var querytl='select Cantica, Canto, Verso from riferimenti' + var queryfi=' where ' + if (filtro.Commentatore!=null && filtro.Commentatore.trim()!='all') + queryfi+="Com='"+filtro.Commentatore.trim()+"'" + else + queryfi+="Com like '%'" + if (filtro.Autore_Fonte!=null && filtro.Autore_Fonte.trim()!='all') + queryfi+=" and Aut='"+filtro.Autore_Fonte.trim()+"'" + + var rs= await tconn.query(querytl+queryfi) + var result4 = rs.toArray().map((row) => row.toJSON()); + + await tconn.close(); + var resxcantica= Object.groupBy(result4, ({ Cantica }) => Cantica); + for (var cantica in resxcantica){ + console.log(resxcantica[cantica].length) + var i=1; + if (cantica=='Purgatorio') + i=2 + if (cantica=='Paradiso') + i=3 + var spanbadgecantica = $(''); + spanbadgecantica.attr('class', 'badge badge-warning badge-pill mx-2'); + spanbadgecantica.append(resxcantica[cantica].length) + spanbadgecantica.appendTo($('#cantica' + i + '-badge')) + console.log(spanbadgecantica) + + } + /*console.log(resxcantica)*/ + return + +}