From fad668565612852e7d866261fc80660dc853a9b5 Mon Sep 17 00:00:00 2001 From: cesare Date: Mon, 17 Mar 2025 12:54:06 +0100 Subject: [PATCH] gestione risultati riferimenti, in progress --- js/browseMgr_5.1.js | 4 +-- js/dataMgr_5.1.js | 69 +++++++++++++++++++++++++++++---------------- 2 files changed, 47 insertions(+), 26 deletions(-) diff --git a/js/browseMgr_5.1.js b/js/browseMgr_5.1.js index d144e11..7158a00 100644 --- a/js/browseMgr_5.1.js +++ b/js/browseMgr_5.1.js @@ -1721,8 +1721,8 @@ $(document).ready(function() { listaRisultatiCommenti = await queryRiferimentimul(jsonQuery, cantoDisplayed) } //carico i commenti risultato della query - var tmpresu=getRisultatiRiferimenti() - commentsSQL = Object.groupBy(tmpresu, ({ VersoCitazione }) => VersoCitazione); + //var tmpresu=getRisultatiRiferimenti() + //commentsSQL = Object.groupBy(tmpresu, ({ VersoCitazione }) => VersoCitazione); showRisultatiCommenti(listaRisultatiCommenti) return } diff --git a/js/dataMgr_5.1.js b/js/dataMgr_5.1.js index 0231e14..0ed4dfd 100644 --- a/js/dataMgr_5.1.js +++ b/js/dataMgr_5.1.js @@ -9,8 +9,9 @@ var rif_autori = []; var rif_areetematiche = []; var rif_fonti = []; var listaidversi = [] +var listaversicommentati=[] var listaidcommenti = [] -var listarisriferimenti=[] +var listarisriferimenti = [] const cantobadgeclassBis = 'badge badge-outline-warning badge-pill' const JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles(); @@ -78,9 +79,25 @@ const result4 = table1.toArray().map((row) => row.toJSON()); //console.log(result4) rif_fonti = result4.map((x) => x['TiFo']); -//console.log(rif_fonti) +var querytl = 'select IdRiferimento, Cantica, Canto, Verso, n1, n2, n3 from riferimenti order by n1, n2, n3' +var tablerif = await conn.query(querytl); +const result5 = tablerif.toArray().map((row) => row.toJSON()); +var allreferences = Object.groupBy(result5, ({ Cantica }) => Cantica); +for (var cantica in allreferences) { + var tmp = allreferences[cantica] + for (var el of tmp) { + var tmpc = el.Canto + if (tmpc.startsWith('0')) + tmpc = tmpc.replace('0', '') + + let ordveid = el.Cantica + '_Canto_' + tmpc + '_' + el.Verso.split('-')[0] + '_sp' + listaversicommentati.push(ordveid) + } +} +listaversicommentati=[...new Set(listaversicommentati)] + /*var tableP = await conn.query(` - select * from commedia limit 10; + select * from commedia limit 10; `); const result5 = tableP.toArray().map((row) => row.toJSON()); console.log(result5)*/ @@ -91,7 +108,11 @@ console.log('done') opzioniRiferimenti() -export function getRisultatiRiferimenti(){ +export function versoCommentato(rif) { + return listaversicommentati.includes(rif); +} + +export function getRisultatiRiferimenti() { return listarisriferimenti; } export function getListaRis() { @@ -103,7 +124,7 @@ export function getListaIdCommenti() { export function cleanListaRis() { listaidversi = []; listaidcommenti = []; - listarisriferimenti=[]; + listarisriferimenti = []; } export function getFontiS() { @@ -276,14 +297,14 @@ export async function queryRiferimentimul(query, cid) { var jsonclauses = JSON.parse(rifclauses) tmpc = '' for (var cls in jsonclauses) { - wherecl += '('+getWherePart(jsonclauses[cls], query, cls)+')' - + wherecl += '(' + getWherePart(jsonclauses[cls], query, cls) + ')' + } console.log(wherecl) const tconn = await db.connect(); - var querytl = 'select IdRiferimento, Cantica, Canto, Verso, n1, n2, n3 from riferimenti' - var rs = await tconn.query(querytl + wherecl+' order by n1, n2, n3') + var querytl = 'select DISTINCT IdRiferimento, Cantica, Canto, Verso, n1, n2, n3 from riferimenti' + var rs = await tconn.query(querytl + wherecl + ' order by n1, n2, n3') var result4 = rs.toArray().map((row) => row.toJSON()); await tconn.close(); @@ -325,16 +346,16 @@ function showResult(resxcantica, cid) { spanbadgecantica.appendTo($('#cantica' + i + '-badge')) var tmp = resxcantica[cantica] - for (var el of tmp){ - var tmpc=el.Canto + for (var el of tmp) { + var tmpc = el.Canto if (tmpc.startsWith('0')) { tmpc = tmpc.replace('0', '') } - - let ordveid = el.Cantica + '_Canto_' + tmpc + '_' + el.Verso.split('-')[0]+'_sp' + + let ordveid = el.Cantica + '_Canto_' + tmpc + '_' + el.Verso.split('-')[0] + '_sp' listaidversi.push(ordveid) } - + var resxcanto = Object.groupBy(tmp, ({ Canto }) => Canto); for (var canto in resxcanto) { var tmpv = resxcanto[canto] @@ -346,7 +367,7 @@ function showResult(resxcantica, cid) { } spanbadge.appendTo($nctags.filter('[name="' + cantica + 'Canto ' + canto + '"]')) for (const tmpvi of tmpv) { - let myveid = cantica + '_Canto_' + canto + '_' + tmpvi.Verso.split('-')[0].replace('|','')+'_sp' + let myveid = cantica + '_Canto_' + canto + '_' + tmpvi.Verso.split('-')[0].replace('|', '') + '_sp' //listaidversi.push(myveid) listaidcommenti.push(tmpvi.IdRiferimento) //Nico if (cid.includes(cantica) && numcid == canto) @@ -375,7 +396,7 @@ export async function queryRiferimenti(filtro, cid) { } const tconn = await db.connect(); var tmpfiltro = '' - var querytlcompl=`SELECT Ann as Annotazione, Com as Commentario, FrN as frammentoNota, AC as AutoreCitazione, + var querytlcompl = `SELECT Ann as Annotazione, Com as Commentario, FrN as frammentoNota, AC as AutoreCitazione, F as FonteCitazione, LF as LuogoFonteCitazione, NF as NotaFonteCitazione, TF as TestoFonteCitazione, UF as URLFonteCitazione, NaRi as NaturaRiferimento, RCC as RapportoCommentoCommentatoreText, RSO as RapportoSoggettoOggetto, @@ -383,7 +404,7 @@ export async function queryRiferimenti(filtro, cid) { TiCi as TipoCitazione, CEP as CitEpisodi, CIM as CitImmagini, CTE as CitTeorie, CMO as CitMotivi, CST as CitStilemi, CTO as CitTopografie, CPER as CitPersonaggi, IdRiferimento, n1, n2, n3, Cantica, Canto, Verso FROM riferimenti` - var querytl = 'select IdRiferimento, Cantica, Canto, Verso, n1, n2, n3 from riferimenti' + var querytl = 'select DISTINCT IdRiferimento, Cantica, Canto, Verso, n1, n2, n3 from riferimenti' var queryfi = ' where ' if (filtro.Commentatore != null && filtro.Commentatore.trim() != 'all') { tmpfiltro = filtro.Commentatore.trim() @@ -447,15 +468,15 @@ export async function queryRiferimenti(filtro, cid) { queryfi += ")" } - //var rs = await tconn.query(querytl + queryfi+ ' order by n1, n2, n3;') - - var rs = await tconn.query(querytlcompl + queryfi+ ' order by n1, n2, n3;') + var rs = await tconn.query(querytl + queryfi + ' order by n1, n2, n3;') + + //var rs = await tconn.query(querytlcompl + queryfi+ ' order by n1, n2, n3;') listarisriferimenti = rs.toArray().map((row) => row.toJSON()); - + await tconn.close(); var resxcantica = Object.groupBy(listarisriferimenti, ({ Cantica }) => Cantica); return (showResult(resxcantica, cid)) - + } /*function sortRiferimenti(canticaArray,arrayValues){ @@ -540,7 +561,7 @@ function filtroContesto(marray, cantica, op) { //Contesto per lista risultati -export async function getFormaCntxtLastPosition(formaid, numversi = 3) { +export async function getFormaCntxtLastPosition(formaid, numversi = 3) { /*const tconn = await db.connect(); var querycnt = "select * from commedia where index>=((select index from commedia where Position='" + formaid + "')-25) order by index limit 50" console.log(" " + formaid) @@ -554,6 +575,6 @@ export async function getFormaCntxtLastPosition(formaid, numversi = 3) { await tconn.close(); return (result4.at(-1)['Position'])*/ - return + return }