From e822c88f28c8afe165387a5688e0531b8c0f03d5 Mon Sep 17 00:00:00 2001 From: nicola Date: Tue, 6 Dec 2022 17:39:52 +0100 Subject: [PATCH] Cantiche caricate all'apertura e pulizia di cesareBrowse.js --- js/NikBrowseSearchCombinedNew.js | 114 +++- js/cesareBrowse.js | 888 +++++++++++++------------------ 2 files changed, 469 insertions(+), 533 deletions(-) diff --git a/js/NikBrowseSearchCombinedNew.js b/js/NikBrowseSearchCombinedNew.js index e5e74cd..da46873 100644 --- a/js/NikBrowseSearchCombinedNew.js +++ b/js/NikBrowseSearchCombinedNew.js @@ -23,7 +23,8 @@ $(document).ready(function() { $("#cla_Grammaticale").attr('style', "display: none;"); $("#cla-Sintattico").attr('style', "display: none;"); - + $("#filtri").attr('style', "display: none;"); + $('.tabs__menu-item').on('click', function() { $(this).addClass('bg-white').addClass('red'); $(this).siblings().removeClass('bg-white').removeClass('red'); @@ -92,6 +93,8 @@ $(document).ready(function() { $("#DoveInferno").attr('style', "display: none;"); $("#cla_Grammaticale").attr('style', "display: none;"); $("#cla-Sintattico").attr('style', "display: none;"); + $("#filtri").attr('style', "display: none;"); + }); @@ -106,6 +109,7 @@ $(document).ready(function() { $("#cla_Grammaticale").attr('style', "display: none;"); $("#DoveInferno").attr('style', "display: block;"); $("#cla-Sintattico").attr('style', "display: none;"); + $("#filtri").attr('style', "display: none;"); }); jQuery(document).delegate('#tab_grammaticale', 'click', function(e) { @@ -119,6 +123,7 @@ $(document).ready(function() { $("#DoveInferno").attr('style', "display: none;"); $("#cla_Grammaticale").attr('style', "display: block;"); $("#cla-Sintattico").attr('style', "display: none;"); + $("#filtri").attr('style', "display: none;"); }); @@ -133,6 +138,7 @@ $(document).ready(function() { $("#DoveInferno").attr('style', "display: none;"); $("#cla_Grammaticale").attr('style', "display: none;"); $("#cla-Sintattico").attr('style', "display: block;"); + $("#filtri").attr('style', "display: none;"); }); @@ -146,7 +152,8 @@ $(document).ready(function() { $("#cla-TabContent").attr('style', "display: none;"); $("#DoveInferno").attr('style', "display: none;"); $("#cla_Grammaticale").attr('style', "display: none;"); - $("#cla-Sintattico").attr('style', "display: block;"); + $("#cla-Sintattico").attr('style', "display: none;"); + $("#filtri").attr('style', "display: block;"); }); @@ -274,6 +281,109 @@ $(document).ready(function() { return true; } + + jQuery(document).delegate('a.set-filterGram', 'click', function(e) { + e.preventDefault(); + + var content = jQuery('#filtro'), + size = jQuery('#filtri >div').length + 1, + element = null, + element = content.clone(); + if (size == 1) { + filterconditions = 1; + jQuery('#filtri').attr('style', "display:block;") + } + else + filterconditions = filterconditions + 1; + + let filtroId = 'filtro-' + filterconditions; + element.attr('id', filtroId); + element.find('.delete-written-filter').attr('target', filtroId); + element.find('.edit-written-filter').attr('target', filtroId); + + //trasformo il filtro espresso nella clausola in un oggetto JSON + + //var condizioni = $("#filterform").serialize().split('&'); + //alert (condizioni) + + + // Creare Condizioni + + var categoriaSelectedValue = $('select.catgram').val(); // categoria grammaticale + var lemma_formaValue = $('#lemma_forma').val(); + var queryText = $('#queryText').val(); + var opzioni_testoValue = $('#opzioni_testo').val(); + + var cla1DiatesiValue = $('input[name=cla1Diatesi]:checked', '#dettaglifiltriVerboVolgare').val(); //$('#cla1Diatesi').val(); + // alert(cla1DiatesiValue) + + var condizioni = ["lemma_forma="+lemma_formaValue+",query="+queryText+",categoria="+categoriaSelectedValue+",Genere=Femminile"]; + + filtro = {} + $('.dettaglifiltriVerboVolgare').attr('style', "display:none;") + $('.dettaglifiltriSostantivoVolgare').attr('style', "display:none;") + $('.savecondition').attr('style', "display:none;") + + for (cond in condizioni) { + + liscond = condizioni[cond].split('=') + if (liscond[1].trim() != '' & liscond[1].trim() != liscond[0].trim()) + filtro[liscond[0]] = liscond[1].replaceAll('%20', ' ') + } + + + //mostro il filtro nella GUI + let tuttiFiltri = ""; + var keys = Object.keys(filtro)//condizioniFiltro) + for (key in keys) { + var dlclass = $('
'), + dtclass = $('
'), + ddclass = $('
'); + tuttiFiltri = tuttiFiltri + filtro[[keys[key]]] + ", "; + } + //element.find('.listacondizioni').append(dlclass); + let virgola = tuttiFiltri.lastIndexOf(','); + //tuttiFiltri = tuttiFiltri.substring(0, virgola); + tuttiFiltri = condizioni; + let txtAreaFiltri = '" + ddclass.append(txtAreaFiltri); + dlclass.append(dtclass); + dlclass.append(ddclass); + element.find('.listacondizioni').append(dlclass); + element.attr('style', 'display.block'); + element.appendTo('#filtri'); + + if (size > 1) { + element.find('.andorconditions').attr('style', 'display.block'); + } + + //$('a.remove-filter').trigger('click'); + var targetDiv = jQuery(this).attr('targetfilter'); + + rmel = jQuery('#' + targetDiv) + rmeldetail = jQuery('#' + 'dettaglio_' + targetDiv) + jQuery(rmel).remove(); + jQuery(rmeldetail).remove(); + clausolaVisibile = false; + + //aggiungo il filtro a quelli esistenti nel json + + filtro['tipoClausola'] = tipoClausola + var clausolaquery = $("#searchValue").val() + filtro['query'] = clausolaquery.trim(); + + // eventualmente le 2 seguenti non funzionano Nicola + // checkedField = $('#lemma_forma').val(); + // filtro['lemma_forma'] = checkedField + + condizioniFiltro['filtro-' + filterconditions] = filtro + + + return true; + }); + // Da Luca var iconReset = '
'; diff --git a/js/cesareBrowse.js b/js/cesareBrowse.js index 64874f9..79c1cc6 100644 --- a/js/cesareBrowse.js +++ b/js/cesareBrowse.js @@ -3,448 +3,363 @@ */ $(document).ready(function() { - const cantobadgeclass='badge badge-outline-info badge-pill' + const cantobadgeclass = 'badge badge-outline-info badge-pill' const sparqlGenerator = sparqljs.Generator; const myEngine = new Comunica.QueryEngine(); const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query"; - //const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/hdntest/query"; - var primaCanticaLoaded = false; - var secondaCanticaLoaded = false; - var terzaCanticaLoaded = false; + var listaVersi = new Set() - const ddmenus={"Inferno":"#dmc1", - "Purgatorio": "#dmc2", - "Paradiso": "#dmc3"} + const ddmenus = { + "Inferno": "#dmc1", + "Purgatorio": "#dmc2", + "Paradiso": "#dmc3" + } + + var currentMinimap = '' + var listarisultati = []; + + + hideMinimap(); + showCantica('Inferno') - var currentMinimap='' + $('#cantica2').css({ 'opacity': 0.40 }); + $('#cantica3').css({ 'opacity': 0.40 }); + $("#CantiInferno").attr('style', 'display:block') + $("#InfernoCanto_1").attr('style', 'display:block') + showCantica('Purgatorio') + showCantica('Paradiso') + //caricamento prima cantica $('#cantica1').on('click', function() { - hideMinimap(); - activateMenuItem('#cantica1') - if (!(primaCanticaLoaded)) { - - //jsonQuery = versiCantica("Inferno"); - //execQuery = new sparqlGenerator().stringify(jsonQuery); - //executeQueryVersi(execQuery); - showCantica('Inferno') - primaCanticaLoaded = true; - $(".labelCantica").attr('style', "display: block;"); - } - else { - //$("#InfernoCanto_1").attr('style', 'display:block') - $("#CantiInferno").attr('style', 'display:block') - - } - - + $("#CantiInferno").attr('style', 'display:block') + $('#cantica1').css({ 'opacity': 1 }); + $('#cantica2').css({ 'opacity': 0.40 }); + $('#cantica3').css({ 'opacity': 0.40 }); }); //caricamento seconda cantica $('#cantica2').on('click', function() { - hideMinimap(); - activateMenuItem('#cantica2') - if (!(secondaCanticaLoaded)) { - - //jsonQuery = versiCantica("Purgatorio"); - //execQuery = new sparqlGenerator().stringify(jsonQuery); - //executeQueryVersi(execQuery); - showCantica('Purgatorio') - secondaCanticaLoaded = true; - $(".labelCantica").attr('style', "display: block;"); - } - else { - //$("#PurgatorioCanto_1").attr('style', 'display:block') - $("#CantiPurgatorio").attr('style', 'display:block') - - } - + //hideMinimap(); + $("#CantiPurgatorio").attr('style', 'display:block') + $('#cantica1').css({ 'opacity': 0.40 }); + $('#cantica2').css({ 'opacity': 1 }); + $('#cantica3').css({ 'opacity': 0.40 }); }); //caricamento terza cantica $('#cantica3').on('click', function() { - hideMinimap(); - activateMenuItem('#cantica3') - if (!(terzaCanticaLoaded)) { - showCantica('Paradiso') - terzaCanticaLoaded = true; - $(".labelCantica").attr('style', "display: block;"); + //hideMinimap(); + $("#CantiParadiso").attr('style', 'display:block') + $('#cantica1').css({ 'opacity': 0.40 }); + $('#cantica2').css({ 'opacity': 0.40 }); + $('#cantica3').css({ 'opacity': 1 }); + }); + var mmih = 0 + var mmiw = 0 + var minimapScrolling = false; + var displayId = 'displaycanto' + var minimapTopPos; + + $("#" + displayId).scroll(function() { + if (minimapScrolling) { + minimapScrolling = false + console.log('no scroll') } else { - //$("#ParadisoCanto_1").attr('style', 'display:block') - $("#CantiParadiso").attr('style', 'display:block') - + console.log('yes scrolling') + console.log("viewer top pos before: " + $('#minimapviewer').offset().top) + trackScrollCanto() + console.log("viewer top pos after: " + $('#minimapviewer').offset().top) } - - }); - var mmih=0 - var mmiw=0 - var minimapScrolling=false; - var displayId='displaycanto' - var minimapTopPos; - $( "#"+displayId).scroll(function() { - if (minimapScrolling){ - minimapScrolling=false - console.log ('no scroll') - } - else{ - console.log ('yes scrolling') - console.log("viewer top pos before: "+$('#minimapviewer').offset().top) - trackScrollCanto() - console.log("viewer top pos after: "+$('#minimapviewer').offset().top) - } - }); - - + + jQuery(document).delegate('.navig-canto', 'click', function(e) { $('.canto').each(function() { $(this).attr("style", 'display:none'); }); + // Crea id per la div che contiene il canto $("#" + $(this).attr('name').replace(" ", "_")).attr('style', 'display:block') + manageMiniMap(this); - mmiw=$("#"+displayId).innerWidth(); - mmih=$("#"+displayId).innerHeight(); - - showMinimap($(this).attr('name').replace(" ", "_")) - - currentMinimap=$(this).attr('name').replace(" ", "_"); + }); + + function manageMiniMap(divElem) { + mmiw = $("#" + displayId).innerWidth(); + mmih = $("#" + displayId).innerHeight(); + + showMinimap($(divElem).attr('name').replace(" ", "_")) + currentMinimap = $(divElem).attr('name').replace(" ", "_"); + //mmviewer diventa draggable - minimapTopPos=$('#minimapviewer').offset().top - console.log("top viewer init "+minimapTopPos) - - $('#minimapviewer').draggable({ - axis: "y", - containment : $('#displayminimap'), - scroll : false, - stop: function( event, ui ) {minimapScrolling=true;}, - stop: function( event, ui ) {minimapScrolling=false;}, - drag: function( event, ui ) { - - minimapScrolling=true; - trackScrollViewer(ui.offset.top-minimapTopPos); - //trackScrollViewer(ui.offset.top); - console.log(ui); - //document.getElementById(displayId).style.transform=`translateY(${viewer.scrollTop * realScale}px)`; - } - }); - - //$('#minimapviewer').on('drag', trackScrollViewer) + minimapTopPos = $('#minimapviewer').offset().top + console.log("top viewer init " + minimapTopPos) + + $('#minimapviewer').draggable({ + axis: "y", + containment: $('#displayminimap'), + scroll: false, + stop: function(event, ui) { minimapScrolling = true; }, + stop: function(event, ui) { minimapScrolling = false; }, + drag: function(event, ui) { + + minimapScrolling = true; + trackScrollViewer(ui.offset.top - minimapTopPos); + console.log(ui); + } + }); + } + + //Query + + + jQuery(document).delegate('#searchcomm', 'click', function(e) { + cleanSearchResult() + esprlogica = [] + + esprlogica.push('Clausola1') + condizioni = { "EsprLogica": esprlogica } + clausola = {} + clausola['typeGramm0'] = $('#queryText').val() + clausola['queryText'] = "" + condizioni['Clausola1'] = clausola + jsonQuery = buildSQ(condizioni) + myquery = new sparqlGenerator().stringify(jsonQuery) + + executeQuerySearch(myquery) + }); + + //Reset + + jQuery(document).delegate('#cleanresult', 'click', function(e) { + console.log('clean') + cleanSearchResult() + esprlogica = [] + $('#queryText').val("") }); - //Query - - - //$('#searchcomm').on('click', function() { - jQuery(document).delegate('#searchcomm', 'click', function(e) { - - cleanSearchResult() - esprlogica=[] - - esprlogica.push('Clausola1') - condizioni={"EsprLogica": esprlogica} - clausola={} - clausola['typeGramm0']=$('#queryText').val() - - - - clausola['queryText']="" - condizioni['Clausola1']=clausola - jsonQuery=buildSQ(condizioni) - myquery =new sparqlGenerator().stringify(jsonQuery) - - executeQuerySearch(myquery) - - - -}); - -//Reset - -jQuery(document).delegate('#cleanresult', 'click', function(e) { - console.log('clean') - cleanSearchResult() - esprlogica=[] - $('#queryText').val("") - -}); - //Utility functions - //activate navigation menu items - - function activateMenuItem(menuItem) { - //$('.blog-nav-item').each(function() { - // $(this).attr("class", $(this).attr("class").replace(' active', '')); - //}); - //$(menuItem).attr("class", $(menuItem).attr("class") + ' active'); - } - - - - function managePunctuation(stringa) { - var tempstringa=stringa.replaceAll(" ,", ",") - tempstringa=tempstringa.replaceAll(" .", ".") - tempstringa=tempstringa.replaceAll(" :", ":") - tempstringa=tempstringa.replaceAll(" !", "!") - tempstringa=tempstringa.replaceAll(" ?", "?") - tempstringa=tempstringa.replaceAll(" ;", ";") - tempstringa=tempstringa.replaceAll("%20", " ") + var tempstringa = stringa.replaceAll(" ,", ",") + tempstringa = tempstringa.replaceAll(" .", ".") + tempstringa = tempstringa.replaceAll(" :", ":") + tempstringa = tempstringa.replaceAll(" !", "!") + tempstringa = tempstringa.replaceAll(" ?", "?") + tempstringa = tempstringa.replaceAll(" ;", ";") + tempstringa = tempstringa.replaceAll("%20", " ") return tempstringa } - function cleanSearchResult(){ - - for (verso of listarisultati){ - idverso='#'+verso - //console.log(idverso) - //$(idverso).attr('class', 'f6 font-weight-lighter') - $(idverso).attr('class', 'f6text-secondary text-nowrap font-weight-lighter') - } - $( ".badge" ).remove(); - listarisultati=[] - if (currentMinimap!='') - showMinimap(currentMinimap) - } + function cleanSearchResult() { - + for (verso of listarisultati) { + idverso = '#' + verso + $(idverso).attr('class', 'f6text-secondary text-nowrap font-weight-lighter') + } + $(".badge").remove(); + listarisultati = [] + if (currentMinimap != '') + showMinimap(currentMinimap) + } //minimap management let minimap = document.createElement('div'); let minimapSize = document.createElement('div'); let viewer = document.createElement('div'); let minimapContent = document.createElement('iframe'); - let scale=0.1; + let scale = 0.1; let realScale; - let mappedElement='' - - function showMinimap(element) { - + let mappedElement = ''; - mmplace=document.getElementById('displayminimap') - //mmplace=document.getElementById('displaycanto') - + function showMinimap(element) { + mmplace = document.getElementById('displayminimap') minimap.className = 'minimap__container' minimapSize.className = 'minimap__size' viewer.className = 'minimap__viewer' - viewer.id='minimapviewer' + viewer.id = 'minimapviewer' minimapContent.className = 'minimap__content' - //class="col-3 px-0" minimap.append(minimapSize, viewer, minimapContent); - - //document.body.appendChild(minimap) + mmplace.appendChild(minimap) - - + let html = document.getElementById(element).outerHTML//innerHTML - //console.log(html) - if (html==null | html=='') + if (html == null | html == '') return; - + let iFrameDoc = minimapContent.contentWindow.document; - - var cssLinkb = document.createElement("link"); cssLinkb.href = "https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css"; - cssLinkb.rel = "stylesheet"; + cssLinkb.rel = "stylesheet"; cssLinkb.type = "text/css"; - + var cssLinkscroll = document.createElement("link"); cssLinkscroll.href = "./css/browsingldc.css"; - cssLinkscroll.rel = "stylesheet"; + cssLinkscroll.rel = "stylesheet"; cssLinkscroll.type = "text/css"; - + iFrameDoc.open(); iFrameDoc.write(html); iFrameDoc.close(); - + iFrameDoc.head.appendChild(cssLinkb); iFrameDoc.head.appendChild(cssLinkscroll); - mappedElement=element - + mappedElement = element + getDimensionsDiv() - + window.addEventListener('scroll', trackScroll) - - - //document.getElementById(displayId).addEventListener('resize', getDimensionsDiv) - window.addEventListener('resize', getDimensionsDiv) - } - - - - function getDimensions(){ - cantoplace=document.getElementById(displayId) - let bodyWidth= cantoplace.clientWidth; - let bodyRatio= bodyWidth/cantoplace.clientHeight + + +/* + function getDimensions() { + cantoplace = document.getElementById(displayId) + let bodyWidth = cantoplace.clientWidth; + let bodyRatio = bodyWidth / cantoplace.clientHeight //let winRatio=cantoplace.clientWidth / getInnerHeight(cantoplace) - let winRatio= window.innerHeight / window.innerWidth; - - - minimap.style.width='55%'; - viewer.style.width='55%' - - realScale=minimap.clientWidth / bodyWidth; - - minimapSize.style.paddingTop=`${bodyRatio * 100}%` - viewer.style.paddingTop=`${winRatio * 100}%`; - minimapContent.style.transform=`scale(${realScale})`; - minimapContent.style.width=`${(100/realScale)}%`; - minimapContent.style.height=`${(100 / realScale)}%`; - - } - function getInnerHeight( elm ){ - var computed = getComputedStyle(elm), - padding = parseInt(computed.paddingTop) + parseInt(computed.paddingBottom); + let winRatio = window.innerHeight / window.innerWidth; - return elm.clientHeight - padding - } - function getDimensionsDiv(){ - - - cantoplace=document.getElementById(displayId) - - elementplace=document.getElementById(mappedElement) - - bodyWidth= elementplace.clientWidth; - bodyRatio= elementplace.clientHeight / bodyWidth; - //let bodyWidth= cantoplace.clientWidth; - //let bodyRatio= cantoplace.clientHeight / bodyWidth; - //let winRatio= window.innerHeight / (window.innerWidth); - let winRatio= getInnerHeight(cantoplace) / (cantoplace.clientWidth); - + + minimap.style.width = '55%'; + viewer.style.width = '55%' + + realScale = minimap.clientWidth / bodyWidth; + + minimapSize.style.paddingTop = `${bodyRatio * 100}%` + viewer.style.paddingTop = `${winRatio * 100}%`; + minimapContent.style.transform = `scale(${realScale})`; + minimapContent.style.width = `${(100 / realScale)}%`; + minimapContent.style.height = `${(100 / realScale)}%`; + + }*/ + function getInnerHeight(elm) { + var computed = getComputedStyle(elm), + padding = parseInt(computed.paddingTop) + parseInt(computed.paddingBottom); + + return elm.clientHeight - padding + } + + function getDimensionsDiv() { + cantoplace = document.getElementById(displayId) + elementplace = document.getElementById(mappedElement) + + bodyWidth = elementplace.clientWidth; + bodyRatio = elementplace.clientHeight / bodyWidth; + + let winRatio = getInnerHeight(cantoplace) / (cantoplace.clientWidth); + //minimap.style.width='15%'; - minimap.style.width='100%'; - - - realScale=minimap.clientWidth / bodyWidth; - - minimapSize.style.paddingTop=`${bodyRatio * 100}%` - viewer.style.paddingTop=`${winRatio * 100}%`; - minimapContent.style.transform=`scale(${realScale})`; - minimapContent.style.width=`${(100/realScale)}%`; - minimapContent.style.height=`${(100 / realScale)}%`; + minimap.style.width = '100%'; + + realScale = minimap.clientWidth / bodyWidth; + + minimapSize.style.paddingTop = `${bodyRatio * 100}%` + viewer.style.paddingTop = `${winRatio * 100}%`; + minimapContent.style.transform = `scale(${realScale})`; + minimapContent.style.width = `${(100 / realScale)}%`; + minimapContent.style.height = `${(100 / realScale)}%`; //minimapContent.style.height=`100%`; - minimapContent.style.float='right'; - + minimapContent.style.float = 'right'; + } - } - - function trackScroll(){ + function trackScroll() { //console.log(window.scrollY) - viewer.style.transform=`translateY(${window.scrollY * realScale}px)` + viewer.style.transform = `translateY(${window.scrollY * realScale}px)` } - function trackScrollCanto(){ - console.log('cantoscrollT*realscale '+document.getElementById(displayId).scrollTop * realScale+' top: ' +document.getElementById(displayId).scrollTop ) - viewer.style.transform=`translateY(${document.getElementById(displayId).scrollTop * realScale}px)` + function trackScrollCanto() { + console.log('cantoscrollT*realscale ' + document.getElementById(displayId).scrollTop * realScale + ' top: ' + document.getElementById(displayId).scrollTop) + viewer.style.transform = `translateY(${document.getElementById(displayId).scrollTop * realScale}px)` + } + function trackScrollViewer(toppos) { + console.log('scrollMMView top*1/realScale: ' + toppos * (1 / realScale) + ' top pos: ' + toppos) + did = document.getElementById(displayId) + did.scrollTop = (toppos * (1 / realScale)) } - function trackScrollViewer(toppos){ - console.log('scrollMMView top*1/realScale: '+toppos*(1/realScale)+' top pos: '+toppos) - did=document.getElementById(displayId) - - did.scrollTop=(toppos*(1/realScale)) - - - } - - function hideMinimap(){ + + function hideMinimap() { $('.canto').each(function() { $(this).attr("style", 'display:none'); }); - $( ".minimap__container" ).remove(); - currentMinimap='' + $(".minimap__container").remove(); + currentMinimap = '' } - // fa diventare draggable il minimapviewer - - //end minimap management //Cantica management functions - - function showCantica(cantica){ + + function showCantica(cantica) { var listaCanti = new Set() var setVersi = new Set() - var listaVersi = [] - var listaForme =[] - containerForme=formeterza - if(cantica=='Inferno') - containerForme=formeprima - if(cantica=='Purgatorio') - containerForme=formeseconda - for (cmpItem of containerForme){ - formaItem=cmpItem[0].split("_") - listaCanti=createDivCanti(listaCanti, cantica, 'Canto '+formaItem[1]) - - var obj = new Object(); - var forma=new Object() - setVersi=createDivVersi(setVersi, cantica, formaItem[3], 'Canto '+formaItem[1]) - /* - obj.numverso = formaItem[3]; + + containerForme = formeterza + if (cantica == 'Inferno') + containerForme = formeprima + if (cantica == 'Purgatorio') + containerForme = formeseconda + for (cmpItem of containerForme) { + formaItem = cmpItem[0].split("_") + listaCanti = createDivCanti(listaCanti, cantica, 'Canto ' + formaItem[1]) + var forma = new Object() + setVersi = createDivVersi(setVersi, cantica, formaItem[3], 'Canto ' + formaItem[1]) - obj.canto = 'Canto '+formaItem[1]; - obj.cantica = cantica; - listaVersi.push(obj) - */ - forma.numverso = formaItem[3]; - forma.canto = 'Canto '+formaItem[1]; + forma.canto = 'Canto ' + formaItem[1]; forma.pos = formaItem[2]; forma.form = formaItem[0]; forma.cantica = cantica; createSpanForme(forma) - //listaForme.push(forma) } - //renderData(cantica, listaCanti, listaVersi, listaForme); return } - function createSpanForme(element){ - var spanoccorrenza=$('') - var pos=parseInt(element.pos) - spanoccorrenza.attr('id', element.cantica+"_"+ element.canto.replace(" ", "_")+"_"+element.numverso+"_"+pos) - if (listarisultati.length>0 && listarisultati.includes(spanoccorrenza.attr('id'))) + function createSpanForme(element) { + var spanoccorrenza = $('') + var pos = parseInt(element.pos) + spanoccorrenza.attr('id', element.cantica + "_" + element.canto.replace(" ", "_") + "_" + element.numverso + "_" + pos) + if (listarisultati.length > 0 && listarisultati.includes(spanoccorrenza.attr('id'))) spanoccorrenza.attr('class', "f6 mark ") spanoccorrenza.append(element.form.replaceAll("%20", " ")) - elementoverso=$('#'+element.cantica+"_"+ element.canto.replace(" ", "_")+"_"+element.numverso) + elementoverso = $('#' + element.cantica + "_" + element.canto.replace(" ", "_") + "_" + element.numverso) spanoccorrenza.appendTo(elementoverso) elementoverso.append(' ') - + } - function createDivVersi(setVersi, cantica, num, canto){ - if(setVersi.has(cantica+"_"+num+"_"+canto)) + + function createDivVersi(setVersi, cantica, num, canto) { + if (setVersi.has(cantica + "_" + num + "_" + canto)) return setVersi - else{ + else { var elementoverso = $('

') elementoverso.append(num + ". ") elementoverso.attr("style", "line-height: 0.5em") - + elementoverso.attr('class', 'f6 text-secondary text-nowrap font-weight-lighter') - elementoverso.attr('id', cantica+"_"+ canto.replace(" ", "_")+"_"+num) - elementoverso.appendTo('#' + cantica +canto.replace(" ", "_")) - setVersi.add(cantica+"_"+num+"_"+canto) + elementoverso.attr('id', cantica + "_" + canto.replace(" ", "_") + "_" + num) + elementoverso.appendTo('#' + cantica + canto.replace(" ", "_")) + setVersi.add(cantica + "_" + num + "_" + canto) return setVersi } - + } - - function createDivCanti(orderedListaCanti, cantica, canto){ - if (orderedListaCanti.has(canto)){ + + function createDivCanti(orderedListaCanti, cantica, canto) { + if (orderedListaCanti.has(canto)) { return orderedListaCanti } var divcanto = $('

') var titolocanto = $('

') - titolocanto.append(cantica+", "+canto) + titolocanto.append(cantica + ", " + canto) divcanto.attr('class', 'canto') divcanto.attr('style', 'display:none') divcanto.attr('id', (cantica + canto).replace(" ", "_")) @@ -453,194 +368,105 @@ jQuery(document).delegate('#cleanresult', 'click', function(e) { orderedListaCanti.add(canto) return orderedListaCanti } - - function renderData(cantica, listaCanti, listaVersi, listaForme){ - //var orderedListaCanti = Array.from(listaCanti) - //orderedListaCanti = orderedListaCanti.sort((a, b) => { - // return parseInt(a.split(" ")[1], 10)-parseInt(b.split(" ")[1], 10) - //}); - //var orderedListaVersi = Array.from(listaVersi) - //orderedListaVersi = orderedListaVersi.sort((a, b) => { - // return parseInt(a.numverso, 10)-parseInt(b.numverso, 10) - - //}); - - /* - listaVersi = listaVersi.filter((value, index, self) => - index === self.findIndex((t) => ( - t.numverso === value.numverso && t.canto === value.canto && t.cantica===value.cantica - )) - )*/ - - //var orderedListaForme = Array.from(listaForme) - //orderedListaForme = orderedListaForme.sort((a, b) => { - // return parseInt(a.pos, 10)-parseInt(b.pos, 10) - - //}); - - //var divListaCanti = $('
') - /* - for (canto of orderedListaCanti) { - - - var divcanto = $('
') - var titolocanto = $('

') - titolocanto.append(cantica+", "+canto) - divcanto.attr('class', 'canto') - divcanto.attr('style', 'display:none') - divcanto.attr('id', (cantica + canto).replace(" ", "_")) - titolocanto.appendTo(divcanto) - divcanto.appendTo(' .blog-main') - } - */ - //divListaCanti.appendTo('#listacanti') - //divListaCanti.appendTo(ddmenus[cantica]) - /* - for (verso of listaVersi) { - - - var elementoverso = $('

') - //vartestoverso=verso.numverso; - elementoverso.append(verso.numverso + ". ") - elementoverso.attr("style", "line-height: 0.5em") - - elementoverso.attr('class', 'f6 text-secondary text-nowrap font-weight-lighter') - //elementoverso.attr('class', 'f6 font-weight-lighter nowrap') - elementoverso.attr('id', verso.cantica+"_"+ verso.canto.replace(" ", "_")+"_"+verso.numverso) - elementoverso.appendTo('#' + cantica + verso.canto.replace(" ", "_")) - - } - */ - listaForme.forEach((element) => { - var spanoccorrenza=$('') - var pos=parseInt(element.pos) - spanoccorrenza.attr('id', element.cantica+"_"+ element.canto.replace(" ", "_")+"_"+element.numverso+"_"+pos) - if (listarisultati.length>0 && listarisultati.includes(spanoccorrenza.attr('id'))) - spanoccorrenza.attr('class', "f6 mark ") - spanoccorrenza.append(element.form) - elementoverso=$('#'+element.cantica+"_"+ element.canto.replace(" ", "_")+"_"+element.numverso) - spanoccorrenza.appendTo(elementoverso) - elementoverso.append(' ') - }) - - } + // Search functions - - async function executeQueryVersi(query) { +/* async function executeQueryVersi(query) { bindingsStream = await myEngine.queryBindings(query, { sources: [{ type: 'sparql', value: sparqlEndpoint },], }); alert(query) try { var listaCanti = new Set() - + listaVersi = new Set() listaForme = new Set() let cantica = 0; bindingsStream.on('data', (binding) => { - //cantica - cantica = binding.get('Cantica').value; - //la lista dei canti - listaCanti.add(binding.get('Canto').value) - //la lista dei versi - var obj = new Object(); - var forma=new Object() - obj.numverso = binding.get('NumeroVerso').value; - obj.verso = binding.get('Verso').value; - obj.canto = binding.get('Canto').value; - //obj.pos = binding.get('pos').value; - //obj.form = binding.get('textform').value; - obj.cantica = cantica; - listaVersi.add(obj) - forma.numverso = binding.get('NumeroVerso').value; - forma.canto = binding.get('Canto').value; - forma.pos = binding.get('pos').value; - forma.form = binding.get('textform').value; - forma.cantica = cantica; - - listaForme.add(forma) - + //cantica + cantica = binding.get('Cantica').value; + //la lista dei canti + listaCanti.add(binding.get('Canto').value) + //la lista dei versi + var obj = new Object(); + var forma = new Object() + obj.numverso = binding.get('NumeroVerso').value; + obj.verso = binding.get('Verso').value; + obj.canto = binding.get('Canto').value; + obj.cantica = cantica; + listaVersi.add(obj) + forma.numverso = binding.get('NumeroVerso').value; + forma.canto = binding.get('Canto').value; + forma.pos = binding.get('pos').value; + forma.form = binding.get('textform').value; + forma.cantica = cantica; + + listaForme.add(forma) + }); bindingsStream.on('end', () => { - - - var orderedListaCanti = Array.from(listaCanti) - orderedListaCanti = orderedListaCanti.sort((a, b) => { - return parseInt(a.split(" ")[1], 10)-parseInt(b.split(" ")[1], 10) - //if (parseInt(a.split(" ")[1], 10) < parseInt(b.split(" ")[1]), 10) { - // return -1; - //} - }); - - var orderedListaVersi = Array.from(listaVersi) - - orderedListaVersi = orderedListaVersi.sort((a, b) => { - return parseInt(a.numverso, 10)-parseInt(b.numverso, 10) - //if (parseInt(a.numverso, 10) < parseInt(b.numverso, 10)) { - // console.log(parseInt(a.numverso, 10)+' '+parseInt(b.numverso, 10)) - // return -1; - //} - - }); - - - orderedListaVersi = orderedListaVersi.filter((value, index, self) => - index === self.findIndex((t) => ( - t.numverso === value.numverso && t.canto === value.canto && t.cantica===value.cantica - )) - ) - - - - var orderedListaForme = Array.from(listaForme) - orderedListaForme = orderedListaForme.sort((a, b) => { - return parseInt(a.pos, 10)-parseInt(b.pos, 10) - //if (parseInt(a.pos) < parseInt(b.pos)) { - // return -1; - //} - - }); - - var divListaCanti = $('

') - for (canto of orderedListaCanti) { - var licanto = $('