correzione bug lista risultati con clausola sintattica, in progress

This commit is contained in:
cesare 2024-12-04 17:08:26 +01:00
parent 3ff138362d
commit 42f84e3b29
3 changed files with 535 additions and 419 deletions

View File

@ -315,9 +315,10 @@ $(document).ready(function() {
continue;
}
numeroRisultati = numeroRisultati + 1;
var versiContesto = getFormaContext(risultato, contextLength);
/*var versiContesto = getFormaContext(risultato, contextLength);
var ultimaForma = versiContesto.slice(-1)
ultimaPosizione = ultimaForma[0].posizione
ultimaPosizione = ultimaForma[0].posizione*/
ultimaPosizione=getContextLastPosition(risultato, contextLength);
}
console.log('N. contesti: ' + numeroRisultati)
numeroContesti = numeroRisultati
@ -326,8 +327,11 @@ $(document).ready(function() {
function getResInPage(startcont, endcont) {
var res = [];
var tempr=new Set()
var ultimaPosizione = -1;
var contaContesti = 0
console.log(listaClausoleRisultato)
if (listarisultati.length) {
for (risultato of listarisultati) {
if (risultato <= parseInt(ultimaPosizione)) {
continue;
@ -338,14 +342,36 @@ $(document).ready(function() {
}
if (contaContesti > endcont)
break;
var versiContesto = getFormaContext(risultato, contextLength);
/*var versiContesto = getFormaContext(risultato, contextLength);
var ultimaForma = versiContesto.slice(-1)
ultimaPosizione = ultimaForma[0].posizione
ultimaPosizione = ultimaForma[0].posizione*/
ultimaPosizione=getContextLastPosition(risultato, contextLength);
}
//ordino la lista dei risultati
res.sort(function(a, b) { return a - b });
return (res)
}
if (listaClausoleRisultato.length) {
for (singleres of listaClausoleRisultato) {
tempr.add (singleres.split('-')[0])
}
var myRis=[]
tempr.forEach( y => myRis.push(listaClausoleRisultato.filter(x => (x.split('-')[0]==y) && x.split('-').length>1)))
for (risultato of myRis) {
contaContesti = contaContesti + 1;
if (contaContesti >= startcont && contaContesti < endcont) {
res.push(risultato)
}
if (contaContesti > endcont)
break;
}
res.sort(function(a, b) { puno=a[0].split('-')[3]; pdue=b[0].split('-')[3]; return parseInt(puno) - parseInt(pdue) });
return (res)
}
return (res)
}
function showFrasi(start, offset = showOffset) {
var canto, numeroCantica;
@ -356,18 +382,26 @@ $(document).ready(function() {
var numeroRisultato = 0;
var ultimaPosizione = 0;
var numeroVersi;
const intsup = Math.min(start + offset, listarisultati.length)
//const intsup = Math.min(start + offset, listarisultati.length)
var resincontext = getResInPage(start, start + offset)
//for (let i=start; i<intsup; i++){
for (let i = 0; i < resincontext.length; i++) {
//risultato = listarisultati[i];
risultato = resincontext[i];
numeroRisultato++;
risultato = parseInt(risultato)
if (risultato <= parseInt(ultimaPosizione)) {
if (!risultato.toString().includes('-') && risultato <= parseInt(ultimaPosizione)) {
continue;
}
var versiContesto = getFormaContext(risultato, contextLength);
var versiContesto=''
if (!Array.isArray(risultato)){
risultato = parseInt(risultato)
versiContesto = getFormaContext(risultato, contextLength);
}
else
versiContesto = getFraseContext(risultato, contextLength);
var setVersicontesto = new Set()
divVerso = ''
numeroCantica = 0
@ -842,42 +876,10 @@ $(document).ready(function() {
// commentsArray = getVersiConCitazioni(cantica, canto)
commentsJson = getVersiConCitazioniJson(cantica, canto)
// commentsArray.forEach(removeHtmlTags2)
/*
var numVerso1;
var numVerso2;
var versoCitazione;
commentsArray.sort((p1, p2) => {
numVerso1 = p1.verso;
numVerso2 = p2.verso;
versoCitazione = (p1.VersoCitazione).replaceAll("-", "");
numVerso1 = numVerso1 + versoCitazione;
versoCitazione = (p2.VersoCitazione).replaceAll("-", "");
numVerso2 = numVerso2 + versoCitazione;
numVerso2 = parseInt(numVerso2.replaceAll("_", ""));
numVerso1 = parseInt(numVerso1.replaceAll("_", ""));
if (numVerso1 < numVerso2) return -1;
if (numVerso1 > numVerso2) return 1;
return 0;
});*/
}
/* Luca: removeHtmlTags2 e' la versione compatta di removeHtmlTags*/
/*function removeHtmlTags2(value) {
var text = ""
for (const key in value) {
text = `${value[key]}`
if (text != null) {
text = text.replace(/<(.|\n)*?>/g, '');
text = text.replace("&laquo;", "");
text = text.replace("&raquo;", "");
text = text.replace(/[\r\n]+/gm, ' ');
value[`${key}`] = text;
}
}
}
*/
function removeHtmlTags(value) {
var text = value;
@ -2030,6 +2032,10 @@ $(document).ready(function() {
for (const india in dialoghi) {
var diaclass = dialoghi[india]['Cnt'].replace('_so', '')
if (testf==diaclass){
listaPeriodiRisultato.push(fraseItems[0].toString())
loadPeriodo(fraseItems[0].toString())
loadClausola(fraseItems[0].toString(), fraseItems[3].toString(), fraseItems[1], fraseItems[2])
//resSent.add(fraseItems[0] + '-' + fraseItems[3] + '-' + fraseItems[1] + '-' + fraseItems[2]);
if (!resSent.has(fraseItems[0])) {
resSent.add(fraseItems[0]);
resultsInCantica.push(fraseItems[4]);
@ -2058,7 +2064,12 @@ $(document).ready(function() {
//ordino la lista dei risultati
listarisultati.sort(function(a, b) { return a - b });
// ordino la lista delle clausole del risultato
listaClausoleRisultato.sort(function(a, b) {
var valA=a.split('-')[2]
var valB=b.split('-')[2]
return valA - valB
});
//aggiunge badge con totale risultati accanto alle cantiche
var totResultN = showBadgeInCantica(resultsInCantica)
@ -2078,7 +2089,7 @@ $(document).ready(function() {
console.log('badge end...')
//calcolo numero dei contesti
countResultContexts()
/countResultContexts()
$("#loader").fadeOut(300);
// mostra lista risultati
$.manageResultList(0,showOffset);

View File

@ -1,10 +1,10 @@
/**
*
*/
import {Runtime, Library, Inspector} from "https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/runtime.js";
import commarc from "https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/index.js";
/*import {Runtime, Library, Inspector} from "https://lida.dantenetwork.it/node_modules/commarcdiag/runtime.js";
import commarc from "https://lida.dantenetwork.it/node_modules/commarcdiag/index.js";*/
/*import {Runtime, Library, Inspector} from "https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/runtime.js";
import commarc from "https://hdnlab1.isti.cnr.it/d3search/node_modules/commarcdiag/index.js";*/
import {Runtime, Library, Inspector} from "https://lida.dantenetwork.it/node_modules/commarcdiag/runtime.js";
import commarc from "https://lida.dantenetwork.it/node_modules/commarcdiag/index.js";
const iframe = document.getElementsByClassName("minimap__content");
const runtime1 = new Runtime(new Library(name => {

View File

@ -101,10 +101,122 @@ var orlprefix = 'https://dantenetwork.it/ontology/orl/current/'
var syntitprefix = 'https://dantenetwork.it/ontology/syntit/current/'
//var stringInSparql= false;
function getFraseContext(fraseids, numversi = 3) {
var context = []
var listaforme = formeprima;
var fraseid = fraseids[0]
var mainid = fraseid.split('-')[0]
var cantica = mainid.split('_')[0]
var offset = parseInt(fraseid.split('-')[2]);
if (cantica == '2') {
offset = parseInt(fraseid.split('-')[2]) - 33374
listaforme = formeseconda;
}
if (cantica == '3') {
offset = parseInt(fraseid.split('-')[2]) - 66588
listaforme = formeterza;
}
maxpos = listaforme.length - 1
var pos = 0
var startindex = Math.max(0, (offset - 10))
for (i = startindex; i < listaforme.length; i++) {
var tmpos = listaforme[i].split('_')[2]
if (tmpos == parseInt(fraseid.split('-')[2])) {
pos = i;
break;
}
}
var pos2 = pos
if (fraseids.length > 1)
lastfraseid = fraseids[fraseids.length - 1]
else
lastfraseid = fraseids[0]
for (j = pos; i < listaforme.length; j++) {
var tmpos2 = listaforme[j].split('_')[2]
if (tmpos2 == parseInt(lastfraseid.split('-')[3])) {
pos2 = j;
break;
}
}
var minpos = 0;
var limitv = Math.max((numversi), 3)
var item = listaforme[pos].split('_');
var numverso = item[3]
var spannum = (4 * limitv)
var contextinf = Math.max(minpos, parseInt(pos) - spannum)
var contextsup = Math.min(maxpos, parseInt(pos2) + spannum)
/*var contextinf = parseInt(fraseid.split('-')[2])
var contextsup = parseInt(fraseid.split('-')[3])*/
for (j = contextinf; j < contextsup + 1; j++) {
var tmpform = listaforme[j].split('_');
if ((tmpform[3] > parseInt(numverso) - limitv) && (tmpform[3] < parseInt(numverso) + limitv)) {
var contextitem = {}
contextitem['testo'] = tmpform[0];
contextitem['verso'] = tmpform[3];
contextitem['canto'] = tmpform[1];
contextitem['cantica'] = cantica - 1;
contextitem['posizione'] = tmpform[2];
contextitem['catg'] = tmpform[4];
contextitem['periodo'] = cantica + '_' + tmpform[1] + '_s_' + tmpform[5];
contextitem['funzperiodo'] = tmpform[6];
context.push(contextitem);
}
}
return context;
}
function getContextLastPosition(formaid, numversi = 3){
var listaforme = formeprima;
var limitv = Math.max((numversi), 3)
var maxpos = 0;
var offset = parseInt(formaid);
if (parseInt(formaid) > 33373 && parseInt(formaid) < 66588) {
listaforme = formeseconda;
cantica = 1;
offset = parseInt(formaid) - 33374
}
if (parseInt(formaid) > 66587 && parseInt(formaid) < 99314) {
listaforme = formeterza;
cantica = 2;
offset = parseInt(formaid) - 66588
}
maxpos = listaforme.length - 1
var pos = 0
var startindex = Math.max(0, (offset - 25))
//console.log('Forma id: '+formaid+' startindex '+ startindex+' offset '+offset+' ('+cantica+')')
for (i = startindex; i < listaforme.length; i++) {
var tmpos = listaforme[i].split('_')[2]
if (tmpos == formaid) {
pos = i;
break;
}
}
var spannum = (11 * limitv)
var contextsup = Math.min(maxpos, parseInt(pos) + spannum)
var tmpform = listaforme[contextsup].split('_');
return(tmpform[2])
}
function getFormaContext(formaid, numversi = 3) {
var context = []
var cantica = 0;
@ -112,12 +224,12 @@ function getFormaContext(formaid, numversi = 3) {
var minpos = 0;
var limitv = Math.max((numversi), 3)
var maxpos = 0;
var offset = 0;
var offset = parseInt(formaid);
if (parseInt(formaid) < 33373) {
/*if (parseInt(formaid) < 33373) {
offset = parseInt(formaid)
}
}*/
if (parseInt(formaid) > 33373 && parseInt(formaid) < 66588) {
listaforme = formeseconda;
@ -151,14 +263,7 @@ function getFormaContext(formaid, numversi = 3) {
}
}
/*for (const [index, element] of listaforme.entries()) {
if(element.split('_')[2]==formaid){
pos=index;
break;
}
}
*/
var item = listaforme[pos].split('_');
var numverso = item[3]
var spannum = (11 * limitv)