implementazione ricerca testo, in progress
This commit is contained in:
parent
17d7627e97
commit
fd859f3463
|
@ -40,7 +40,7 @@ $(document).ready(function() {
|
||||||
var commentsArray = []
|
var commentsArray = []
|
||||||
var commentsJson = {}
|
var commentsJson = {}
|
||||||
var resultSentences = new Set()
|
var resultSentences = new Set()
|
||||||
var cantiche=["Inferno", "Purgatorio","Paradiso"]
|
const cantiche=["Inferno", "Purgatorio","Paradiso"]
|
||||||
var loadedCanti=new Set();
|
var loadedCanti=new Set();
|
||||||
const openSTag="{"
|
const openSTag="{"
|
||||||
const closeSTag="}"
|
const closeSTag="}"
|
||||||
|
@ -1409,7 +1409,26 @@ function resetFrasi(){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (jsonQuery['Clausola0']['lemma_forma'] == 'testo'){
|
if (jsonQuery['Clausola0']['lemma_forma'] == 'testo'){
|
||||||
searchwords = jsonQuery['Clausola0']['queryText'].split(' ')
|
searchwords = jsonQuery['Clausola0']['queryText'].trim().split(' ')
|
||||||
|
|
||||||
|
var resultsInCantica=[]
|
||||||
|
var resultsInCanto=[]
|
||||||
|
console.log('frase length '+searchwords.length)
|
||||||
|
executeLocalSearch(searchwords, formeprima, (formeprima.length-searchwords.length), cantiche[0], resultsInCantica, resultsInCanto)
|
||||||
|
executeLocalSearch(searchwords, formeseconda, (formeseconda.length-searchwords.length), cantiche[1], resultsInCantica, resultsInCanto)
|
||||||
|
executeLocalSearch(searchwords, formeterza, (formeterza.length-searchwords.length), cantiche[2], resultsInCantica, resultsInCanto)
|
||||||
|
if (listarisultati.length){
|
||||||
|
//evidenzia risultati
|
||||||
|
for (ris of listarisultati) {
|
||||||
|
idris = '#' + ris
|
||||||
|
$(idris).addClass("font-weight-bold mark ")
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
var totResultN=showBadgeInCantica(resultsInCantica)
|
||||||
|
showBadgeInCanto(resultsInCanto)
|
||||||
|
|
||||||
|
return
|
||||||
}
|
}
|
||||||
jsonQuery = buildSQ(jsonQuery)
|
jsonQuery = buildSQ(jsonQuery)
|
||||||
|
|
||||||
|
@ -1420,6 +1439,32 @@ function resetFrasi(){
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function executeLocalSearch(testo, forme, limit, cantica, resultsInCantica, resultsInCanto){
|
||||||
|
|
||||||
|
for (var ip=0; ip<=limit; ip++){
|
||||||
|
var fnd=true
|
||||||
|
for (var frind=0; frind<testo.length; frind++){
|
||||||
|
if (testo[frind].toLowerCase()!=forme[ip+frind].split('_')[0].toLowerCase()){
|
||||||
|
fnd=false;
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (fnd){
|
||||||
|
//console.log('ipfound: '+forme[ip].split('_')[2]+' - '+forme[(ip+testo.length-1)].split('_')[2])
|
||||||
|
resultsInCantica.push(cantica)
|
||||||
|
resultsInCanto.push(cantica+'Canto '+forme[ip].split('_')[1])
|
||||||
|
var tstar= parseInt(forme[ip].split('_')[2])
|
||||||
|
var tstop=parseInt(forme[(ip+testo.length-1)].split('_')[2])
|
||||||
|
for (var mpo=tstar;mpo<tstop+1; mpo++){
|
||||||
|
|
||||||
|
listarisultati.push(mpo)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//manage sentence and clauses
|
//manage sentence and clauses
|
||||||
|
@ -1654,7 +1699,7 @@ function resetFrasi(){
|
||||||
|
|
||||||
|
|
||||||
function createAllDivCanti() {
|
function createAllDivCanti() {
|
||||||
var cantiche=["Inferno", "Purgatorio","Paradiso"]
|
//var cantiche=["Inferno", "Purgatorio","Paradiso"]
|
||||||
var divFrasi = $('<div />')
|
var divFrasi = $('<div />')
|
||||||
var divDialoghi = $('<div />')
|
var divDialoghi = $('<div />')
|
||||||
var divMetafore = $('<div />')
|
var divMetafore = $('<div />')
|
||||||
|
@ -1781,7 +1826,7 @@ function resetFrasi(){
|
||||||
listarisultati = Array.from(result)
|
listarisultati = Array.from(result)
|
||||||
var listaclausole=Array.from(resultClauses)
|
var listaclausole=Array.from(resultClauses)
|
||||||
|
|
||||||
cantiche = ["Inferno", "Purgatorio", "Paradiso"]
|
//cantiche = ["Inferno", "Purgatorio", "Paradiso"]
|
||||||
listaPeriodiRisultato=[]
|
listaPeriodiRisultato=[]
|
||||||
listaClausoleRisultato=[]
|
listaClausoleRisultato=[]
|
||||||
//Unità di ricerca è 'frase'
|
//Unità di ricerca è 'frase'
|
||||||
|
@ -1858,23 +1903,11 @@ function resetFrasi(){
|
||||||
listarisultati.sort(function(a, b){return a - b});
|
listarisultati.sort(function(a, b){return a - b});
|
||||||
|
|
||||||
//aggiunge badge con totale risultati accanto alle cantiche
|
//aggiunge badge con totale risultati accanto alle cantiche
|
||||||
i = 0
|
|
||||||
var totResultN=0;
|
|
||||||
var listIcon = '<ion-icon name="list-outline"></ion-icon>';
|
|
||||||
|
|
||||||
for (cantica of cantiche) {
|
var totResultN=showBadgeInCantica(resultsInCantica)
|
||||||
i += 1
|
|
||||||
let count = resultsInCantica.reduce((n, x) => n + (x === cantica), 0);
|
|
||||||
if (count>0){
|
|
||||||
totResultN+=count
|
|
||||||
var spanbadgecantica = $('<span />');
|
|
||||||
spanbadgecantica.attr('class', 'badge badge-warning badge-pill mx-2');
|
|
||||||
spanbadgecantica.append(count)
|
|
||||||
spanbadgecantica.appendTo($('#cantica' + i + '-badge'))
|
|
||||||
//$('#cantica' + i).after(spanbadgecantica)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//aggiunge badge con totale risultati nel bottone lista risultati
|
//aggiunge badge con totale risultati nel bottone lista risultati
|
||||||
|
var listIcon = '<ion-icon name="list-outline"></ion-icon>';
|
||||||
if (totResultN>0){
|
if (totResultN>0){
|
||||||
$("#headingZero").closest('.card').attr('style', 'display: d-flex;')
|
$("#headingZero").closest('.card').attr('style', 'display: d-flex;')
|
||||||
var spanbadgelista = $('<span />');
|
var spanbadgelista = $('<span />');
|
||||||
|
@ -1882,30 +1915,10 @@ function resetFrasi(){
|
||||||
spanbadgelista.append(totResultN+listIcon)
|
spanbadgelista.append(totResultN+listIcon)
|
||||||
spanbadgelista.appendTo($('#cantica0-badge'))
|
spanbadgelista.appendTo($('#cantica0-badge'))
|
||||||
}
|
}
|
||||||
|
|
||||||
//aggiunge badge con totale risultati accanto ai canti
|
//aggiunge badge con totale risultati accanto ai canti
|
||||||
|
showBadgeInCanto(resultsInCanto)
|
||||||
|
|
||||||
console.log('results end...')
|
|
||||||
|
|
||||||
//console.log(sid)
|
|
||||||
var $nctags= $(' .navig-canto')
|
|
||||||
|
|
||||||
|
|
||||||
for (cantica of cantiche) {
|
|
||||||
for (k of Array(35).keys()) {
|
|
||||||
if (k == 0)
|
|
||||||
continue
|
|
||||||
|
|
||||||
let count = resultsInCanto.reduce((n, x) => n + (x === cantica + 'Canto ' + k), 0);
|
|
||||||
if (count>0){
|
|
||||||
var spanbadge = $('<span />');
|
|
||||||
spanbadge.attr('class', cantobadgeclass);
|
|
||||||
spanbadge.append(count)
|
|
||||||
//spanbadge.appendTo($('[name="' + cantica + 'Canto ' + k + '"]'))
|
|
||||||
spanbadge.appendTo($nctags.filter('[name="' + cantica + 'Canto ' + k + '"]'))
|
|
||||||
//spanbadge.insertAfter($('[name="'+cantica+'Canto '+k+'"]'))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
console.log('badge end...')
|
console.log('badge end...')
|
||||||
//calcolo numero dei contesti
|
//calcolo numero dei contesti
|
||||||
countResultContexts()
|
countResultContexts()
|
||||||
|
@ -1926,6 +1939,50 @@ function resetFrasi(){
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//VISUALIZZAZIONE BADGE RISULTATI IN CANTICA
|
||||||
|
|
||||||
|
function showBadgeInCantica(resultsInCantica) {
|
||||||
|
var i = 0, totResultN = 0
|
||||||
|
//var listIcon = '<ion-icon name="list-outline"></ion-icon>';
|
||||||
|
for (cantica of cantiche) {
|
||||||
|
i += 1
|
||||||
|
let count = resultsInCantica.reduce((n, x) => n + (x === cantica), 0);
|
||||||
|
if (count > 0) {
|
||||||
|
totResultN += count
|
||||||
|
var spanbadgecantica = $('<span />');
|
||||||
|
spanbadgecantica.attr('class', 'badge badge-warning badge-pill mx-2');
|
||||||
|
spanbadgecantica.append(count)
|
||||||
|
spanbadgecantica.appendTo($('#cantica' + i + '-badge'))
|
||||||
|
//$('#cantica' + i).after(spanbadgecantica)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return (totResultN)
|
||||||
|
}
|
||||||
|
|
||||||
|
//VISUALIZZAZIONE BADGE RISULTATI IN CANTO
|
||||||
|
|
||||||
|
function showBadgeInCanto(resultsInCanto) {
|
||||||
|
|
||||||
|
var $nctags = $(' .navig-canto')
|
||||||
|
|
||||||
|
|
||||||
|
for (cantica of cantiche) {
|
||||||
|
for (k of Array(35).keys()) {
|
||||||
|
if (k == 0)
|
||||||
|
continue
|
||||||
|
|
||||||
|
let count = resultsInCanto.reduce((n, x) => n + (x === cantica + 'Canto ' + k), 0);
|
||||||
|
if (count > 0) {
|
||||||
|
var spanbadge = $('<span />');
|
||||||
|
spanbadge.attr('class', cantobadgeclass);
|
||||||
|
spanbadge.append(count)
|
||||||
|
//spanbadge.appendTo($('[name="' + cantica + 'Canto ' + k + '"]'))
|
||||||
|
spanbadge.appendTo($nctags.filter('[name="' + cantica + 'Canto ' + k + '"]'))
|
||||||
|
//spanbadge.insertAfter($('[name="'+cantica+'Canto '+k+'"]'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* REGOLE DI PARSING PER VISUALIZZAZIONE CATEGORIE GRAMMATICALI
|
* REGOLE DI PARSING PER VISUALIZZAZIONE CATEGORIE GRAMMATICALI
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue