rif in progress

This commit is contained in:
cesare 2025-01-31 14:58:34 +01:00
parent abb74e65a0
commit 49fe4d93eb
2 changed files with 75 additions and 67 deletions

View File

@ -1,7 +1,7 @@
/** /**
* *
*/ */
import { getVersiConCitazioni, queryRiferimenti} from './dataMgr.js'; import { getVersiConCitazioni, queryRiferimenti, getListaRis} from './dataMgr.js';
import { getJsonQuery, emptyStructCard } from './script_5.0.js'; import { getJsonQuery, emptyStructCard } from './script_5.0.js';
import {resetGraphStr} from './syntgraph_5.0.js' import {resetGraphStr} from './syntgraph_5.0.js'
@ -1489,6 +1489,12 @@ $(document).ready(function() {
//manageMM (cantoDisplayed) //manageMM (cantoDisplayed)
//var currPage = 0; //var currPage = 0;
//var latestPhraseId = ""; //var latestPhraseId = "";
var telive=getListaRis()
for (var ve of telive) {
let idve = ve
$(ve).removeClass("font-weight-bold mark ")
minim.contents().find(ve).removeClass("font-weight-bold mark ")
}
drawMinimap(cantoDisplayed, true) drawMinimap(cantoDisplayed, true)
} }

View File

@ -4,10 +4,11 @@ import * as duckdb from 'https://cdn.jsdelivr.net/npm/@duckdb/duckdb-wasm@1.29.0
//import * as arrow from 'https://cdn.skypack.dev/apache-arrow@9' //import * as arrow from 'https://cdn.skypack.dev/apache-arrow@9'
var rif_commentatori=[]; var rif_commentatori = [];
var rif_autori=[]; var rif_autori = [];
var rif_areetematiche=[]; var rif_areetematiche = [];
var rif_fonti=[]; var rif_fonti = [];
var listaidversi = []
const cantobadgeclassBis = 'badge badge-outline-warning badge-pill' const cantobadgeclassBis = 'badge badge-outline-warning badge-pill'
const JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles(); const JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles();
@ -16,7 +17,7 @@ const JSDELIVR_BUNDLES = duckdb.getJsDelivrBundles();
const bundle = await duckdb.selectBundle(JSDELIVR_BUNDLES); const bundle = await duckdb.selectBundle(JSDELIVR_BUNDLES);
const worker_url = URL.createObjectURL( const worker_url = URL.createObjectURL(
new Blob([`importScripts("${bundle.mainWorker}");`], {type: 'text/javascript'}) new Blob([`importScripts("${bundle.mainWorker}");`], { type: 'text/javascript' })
); );
// Instantiate the asynchronus version of DuckDB-wasm // Instantiate the asynchronus version of DuckDB-wasm
@ -26,7 +27,7 @@ const db = new duckdb.AsyncDuckDB(logger, worker);
await db.instantiate(bundle.mainModule, bundle.pthreadWorker); await db.instantiate(bundle.mainModule, bundle.pthreadWorker);
URL.revokeObjectURL(worker_url); URL.revokeObjectURL(worker_url);
console.log ('datamgr init done') console.log('datamgr init done')
//await db.registerFileURL('remote.parquet', 'http://localhost:8000/js/data/riferimenti_3.parquet', DuckDBDataProtocol.HTTP, false); //await db.registerFileURL('remote.parquet', 'http://localhost:8000/js/data/riferimenti_3.parquet', DuckDBDataProtocol.HTTP, false);
@ -42,19 +43,19 @@ await conn.query(`
SELECT * FROM "https://lida.dantenetwork.it/js/data/riferimenti_3.parquet"; SELECT * FROM "https://lida.dantenetwork.it/js/data/riferimenti_3.parquet";
`); `);
var table=await conn.query(` var table = await conn.query(`
select distinct Aut from riferimenti order by Aut COLLATE NOCASE; select distinct Aut from riferimenti order by Aut COLLATE NOCASE;
`); `);
const result = table.toArray().map((row) => row.toJSON()); const result = table.toArray().map((row) => row.toJSON());
rif_autori=result.map((x) => x['Aut']); rif_autori = result.map((x) => x['Aut']);
//console.log(rif_autori) //console.log(rif_autori)
var table=await conn.query(` var table = await conn.query(`
select distinct Com from riferimenti; select distinct Com from riferimenti;
`); `);
const result2 = table.toArray().map((row) => row.toJSON()); const result2 = table.toArray().map((row) => row.toJSON());
rif_commentatori=result2.map((x) => x['Com']); rif_commentatori = result2.map((x) => x['Com']);
@ -66,24 +67,27 @@ rif_commentatori=result2.map((x) => x['Com']);
//console.log(rif_commentatori) //console.log(rif_commentatori)
var table=await conn.query(` var table = await conn.query(`
select distinct CA from riferimenti order by CA; select distinct CA from riferimenti order by CA;
`); `);
const result3 = table.toArray().map((row) => row.toJSON()); const result3 = table.toArray().map((row) => row.toJSON());
rif_areetematiche= result3.map((x) => x['CA']); rif_areetematiche = result3.map((x) => x['CA']);
var table1=await conn.query(` var table1 = await conn.query(`
select distinct TiFo from riferimenti; select distinct TiFo from riferimenti;
`); `);
const result4 = table1.toArray().map((row) => row.toJSON()); const result4 = table1.toArray().map((row) => row.toJSON());
rif_fonti=result4.map((x) => x['TiFo']); rif_fonti = result4.map((x) => x['TiFo']);
//console.log(rif_fonti) //console.log(rif_fonti)
await conn.close(); await conn.close();
console.log('done') console.log('done')
export function getListaRis(){
return listaidversi;
}
export function getFontiS() { export function getFontiS() {
return rif_fonti return rif_fonti
@ -110,8 +114,8 @@ export async function getVersiConCitazioni(canticapar = '', cantopar = '') {
if (canticapar == '') { if (canticapar == '') {
return return
} }
const tconn = await db.connect(); const tconn = await db.connect();
var table=await tconn.query(` var table = await tconn.query(`
select Ann as Annotazione, Com as Commentario, FrN as frammentoNota, AC as AutoreCitazione, select Ann as Annotazione, Com as Commentario, FrN as frammentoNota, AC as AutoreCitazione,
F as FonteCitazione, LF as LuogoFonteCitazione, NF as NotaFonteCitazione, F as FonteCitazione, LF as LuogoFonteCitazione, NF as NotaFonteCitazione,
TF as TestoFonteCitazione, UF as URLFonteCitazione, NaRi as NaturaRiferimento, TF as TestoFonteCitazione, UF as URLFonteCitazione, NaRi as NaturaRiferimento,
@ -130,68 +134,66 @@ export async function getVersiConCitazioni(canticapar = '', cantopar = '') {
return result4 return result4
} }
export async function queryRiferimenti(filtro, cid){ export async function queryRiferimenti(filtro, cid) {
if(filtro==null){ if (filtro == null) {
return return
} }
console.log(filtro) console.log(filtro)
const tconn= await db.connect(); const tconn = await db.connect();
var querytl='select Cantica, Canto, Verso from riferimenti' var querytl = 'select Cantica, Canto, Verso from riferimenti'
var queryfi=' where ' var queryfi = ' where '
if (filtro.Commentatore!=null && filtro.Commentatore.trim()!='all') if (filtro.Commentatore != null && filtro.Commentatore.trim() != 'all')
queryfi+="Com='"+filtro.Commentatore.trim()+"'" queryfi += "Com='" + filtro.Commentatore.trim() + "'"
else else
queryfi+="Com like '%'" queryfi += "Com like '%'"
if (filtro.Autore_Fonte!=null && filtro.Autore_Fonte.trim()!='all') if (filtro.Autore_Fonte != null && filtro.Autore_Fonte.trim() != 'all')
queryfi+=" and Aut='"+filtro.Autore_Fonte.trim()+"'" queryfi += " and Aut='" + filtro.Autore_Fonte.trim() + "'"
var rs= await tconn.query(querytl+queryfi) var rs = await tconn.query(querytl + queryfi)
var result4 = rs.toArray().map((row) => row.toJSON()); var result4 = rs.toArray().map((row) => row.toJSON());
await tconn.close(); await tconn.close();
var resxcantica= Object.groupBy(result4, ({ Cantica }) => Cantica); var resxcantica = Object.groupBy(result4, ({ Cantica }) => Cantica);
var numcid=cid.split('_')[1] var numcid = cid.split('_')[1]
for (var cantica in resxcantica){ for (var cantica in resxcantica) {
var $nctags = $(' .navig-canto') var $nctags = $(' .navig-canto')
console.log(resxcantica[cantica].length) console.log(resxcantica[cantica].length)
var i=1; var i = 1;
if (cantica=='Purgatorio') if (cantica == 'Purgatorio')
i=2 i = 2
if (cantica=='Paradiso') if (cantica == 'Paradiso')
i=3 i = 3
var spanbadgecantica = $('<span />'); var spanbadgecantica = $('<span />');
spanbadgecantica.attr('class', 'badge badge-warning badge-pill mx-2'); spanbadgecantica.attr('class', 'badge badge-warning badge-pill mx-2');
spanbadgecantica.append(resxcantica[cantica].length) spanbadgecantica.append(resxcantica[cantica].length)
spanbadgecantica.appendTo($('#cantica' + i + '-badge')) spanbadgecantica.appendTo($('#cantica' + i + '-badge'))
console.log(spanbadgecantica) console.log(spanbadgecantica)
var tmp=resxcantica[cantica] var tmp = resxcantica[cantica]
var resxcanto= Object.groupBy(tmp, ({ Canto }) => Canto); var resxcanto = Object.groupBy(tmp, ({ Canto }) => Canto);
for (var canto in resxcanto){ for (var canto in resxcanto) {
var tmpv=resxcanto[canto] var tmpv = resxcanto[canto]
var spanbadge = $('<span />'); var spanbadge = $('<span />');
spanbadge.attr('class', cantobadgeclassBis); spanbadge.attr('class', cantobadgeclassBis);
spanbadge.append(resxcanto[canto].length) spanbadge.append(resxcanto[canto].length)
if (canto.startsWith('0')){ if (canto.startsWith('0')) {
canto= canto.replace('0', '') canto = canto.replace('0', '')
} }
spanbadge.appendTo($nctags.filter('[name="' + cantica + 'Canto ' + canto + '"]')) spanbadge.appendTo($nctags.filter('[name="' + cantica + 'Canto ' + canto + '"]'))
if (cid.includes(cantica) && numcid==canto){ for (const tmpvi of tmpv) {
let myveid = '#' + cantica + '_Canto_' + canto + '_' + tmpvi.Verso.split('-')[0]
console.log(myveid)
for (const tmpvi of tmpv){ listaidversi.push(myveid)
let myveid='#'+cantica+'_Canto_'+canto+'_'+tmpvi.Verso.split('-')[0] if (cid.includes(cantica) && numcid == canto)
console.log(myveid)
$(myveid).addClass("font-weight-bold mark ") $(myveid).addClass("font-weight-bold mark ")
}
} }
} }
drawMinimap(cid, true) drawMinimap(cid, true)
} }
/*console.log(resxcantica)*/ /*console.log(resxcantica)*/
return resxcantica return listaidversi
} }