diff --git a/index_3.1.html b/index_3.1.html index dd0e5bf..82b8733 100644 --- a/index_3.1.html +++ b/index_3.1.html @@ -1,1905 +1,1191 @@ - - - - - - LiDa Dashboard - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +/** + * + */ + +/* necessari per il bundle: +import "./jquery-global.js"; +require("../node_modules/jquery-ui-dist/jquery-ui.js"); +require("../node_modules/bootstrap/dist/js/bootstrap.bundle.min.js"); +*/ + +$(document).ready(function() { + + //$('#multidraggable1').multidraggable(); + + $("#dropAdvanced").on('click', function () { + queryJson.QueryAvanzata = "1"; + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: none;"); + $("#collapseOptions").collapse('hide'); + $("#collapseAdvanced").collapse('show'); + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: flex;"); + }); + + $("#dropSimple").on('click', function () { + queryJson.QueryAvanzata = "0"; + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: none;"); + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: flex;"); + $("#collapseAdvanced").collapse('hide'); + }); + + $("#copiaTesto").prop("disabled", true); + + // Evento: click sul bottone di copia dei risultati testuali + $("#copiaTesto").on("click", function(){ + $("#risultatitesto").copy2clipboard(); + }); + + $("#copiaQuery").prop("disabled", true); + + $('#collapseLogic').on('hidden.bs.collapse', function (e) { + if (e.target.id == "collapseLogic") { + $("#showLogic").html('Mostra pannello'); + $("#collapseAdvanced").collapse('hide'); + }; + }) + + $('#collapseLogic').on('shown.bs.collapse', function () { + $("#showLogic").html('Nascondi pannello'); + $("#collapseAdvanced").collapse('show'); + }) + + $('#collapseOptions').on('hidden.bs.collapse', function () { + $("#showOptions").html('Mostra Opzioni'); + }) + + $('#collapseOptions').on('shown.bs.collapse', function () { + $("#showOptions").html('Nascondi Opzioni'); + }) + + $('#searchToggle').on('change', function() { + if ($(this).prop('checked')) { + queryJson.QueryAvanzata = "1"; + $("#simpleSearchDiv").removeClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: none;"); + $("#collapseOptions").collapse('hide'); + $("#advancedSearchDiv").addClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: flex;"); + $("#collapseAdvanced").collapse('show'); + $("#collapseLogic").collapse('show'); + } else { + queryJson.QueryAvanzata = "0"; + $("#collapseAdvanced").collapse('hide'); + $("#advancedSearchDiv").removeClass( "d-flex" ) + $("#advancedSearchDiv").attr('style', "display: none;"); + $("#simpleSearchDiv").addClass( "d-flex" ) + $("#simpleSearchDiv").attr('style', "display: flex;"); + }; + }); + + // Inizializza sortable + $( "#sortable0" ).sortable({ + items: "> li", + handle: ".handle" + }); + + // Inizializza selectableS e definisce le funzioni + $("#selectableS").selectable({ + filter: "td", + //appendTo: "#someElem", + selected: function(event, ui) { + contextS[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + //console.log(ui.selected.id.substring(0,1) + " + " + ui.selected.id.substring(2)); + }, + unselected: function(event, ui) { + contextS[ui.unselected.id.substring(0,1)][ui.unselected.id.substring(2)] = 0; + //console.log(ui.unselected.id.substring(0,1) + " - " + ui.unselected.id.substring(2)); + }, + stop: function(event, ui) { + //console.log(context0); + parseContext(contextS); + //$("#risultatitesto").val(parseContext(context0)); + } + }); + + // Inizializza selectable0 e definisce le funzioni + $("#selectable0").selectable({ + filter: "td", + //appendTo: "#someElem", + selected: function(event, ui) { + context0[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + //console.log(ui.selected.id.substring(0,1) + " + " + ui.selected.id.substring(2)); + }, + unselected: function(event, ui) { + context0[ui.unselected.id.substring(0,1)][ui.unselected.id.substring(2)] = 0; + //console.log(ui.unselected.id.substring(0,1) + " - " + ui.unselected.id.substring(2)); + }, + stop: function(event, ui) { + //console.log(context0); + parseContext(context0); + //$("#risultatitesto").val(parseContext(context0)); + } + }); + + // Evento: click sul bottone di copia della query + $("#copiaQuery").on("click", function(){ + $('#sparqlquery').copy2clipboard(); + }); + + // Evento: modifica di un campo clausole + $("form #lemma_forma,#queryText,#opzioni_testo").on('change', function() { + refreshClaList(); + }); + + $('#cla-TabContent').on('change', '.monMe', function() { + refreshClaList(); + }); + + // Evento: click sull'icona rimuovi clausola + $('#cla-TabContent').on('click', '.removeCla', function() { + var claListItemId = $(this).closest('li').attr('id'); + var claIdNum = claListItemId.substr(6); + claListLen--; + $("#" + claListItemId)[0].remove(); + delete queryJson["Clausola" + claIdNum]; + refreshClaList(); + refreshSortables(); + }); + + // Evento: click sull'icona rimuovi condizione + $('#sortable0').on('click', '.removeCond', function() { + $(this).closest('ul').parent().remove(); + condListLen--; + refreshSortables(); + refreshConnectWith(); + if (claListLen == 0 && condListLen == 0) { + $('#sortable0').html(emptyClaList); + } + }); + + // Evento: click sulla lista di clausole nel dropbox "Aggiungi clausola di tipo:" o "aggiungi condizione logica:" + $('.btn-group a').on('click', function() { + var addClaN = $(this).attr('id'); + switch (addClaN) { + case "Grammaticale": + tabID++; + addGramCla(1,tabID); + break; + case "Sintattico": + tabID++; + addSyntCla(1,tabID); + break; + case "Metafore": + tabID++; + addMetaCla(0,tabID); + break; + case "andCond": + addLogicCond("AND","#sortable0"); + break; + case "orCond": + addLogicCond("OR","#sortable0"); + break; + default: + }; + refreshClaList(); + refreshSortables(); + }); + + // Evento: clausola spostata nella lista + $('#sortable0').sortable({ + opacity: 0.6, + cursor: 'move', + update: function() { + refreshSortables(); + } + }); + + // Evento: click sul checkbox di attivazione/disattivazione delle clausole + $('#cla-TabContent').on('click', '.claAct', function() { + var claListItemId = $(this).closest('li').attr('id'); + var tabPanelId = "#" + claListItemId.substring(3); + if ($(this).prop('checked')) { + $(tabPanelId).attr("data-claActive", 1); + $(this).closest('li').find('.clatext').fadeTo( "slow", 1 ); + } else { + $(tabPanelId).attr("data-claActive", 0); + $(this).closest('li').find('.clatext').fadeTo( "slow", 0.6 ); + } + refreshSortables(); + }); + + // Evento: click sull'icona di refresh dei radio button + $('#cla-TabContent').on('click', '.radioReset', function() { + fSet = $(this).siblings('fieldset'); + if (fSet.find(":checked").length) { + radioChecked = fSet.find(":checked")[0]; + radioChecked.checked = false; + }; + refreshClaList(); + }); + + // Evento: click sull'icona di save local + $('#cla-TabContent').on('click', 'ion-icon[name="save-outline"]', function() { + var fileA = document.createElement("a"); + fileA.href = window.URL.createObjectURL(new Blob([JSON.stringify(queryJson)], {type: "text/plain;charset=utf-8"})); + fileA.download = "LiDaQuery.txt"; + fileA.click(); + fileA.remove(); + }); + + // Evento: click sull'icona di load local + $('#cla-TabContent').on('click', 'ion-icon[name="folder-open-outline"]', function() { + $('#apriFile').click(); + }); + + $("#apriFile").on('change', function() { + var file = $(this).prop('files')[0]; + var reader = new FileReader(); + reader.onload = function(data){ + queryJson = JSON.parse(data.target.result) + makeUpGui(queryJson); + }; + if (file) {reader.readAsText(file);} + }); + + // Evento: SCELTA CATEGORIA GRAMMATICALE + $('#cla-TabContent').on('change', 'select.catgram', function(e) { + e.preventDefault(); + var tabPaneId = ($(this).closest('.tab-pane').attr("id")); + var selectedValue = $(this).val(); + addCatgramSubcla(tabPaneId,selectedValue); + }); + + // Evento: Submit form + $("form").submit(function(e){ + e.preventDefault(); + }); + + // Evento: click sui bottoni Cerca + $("form #searchcomm,#searchcomm2").on('click', function(e) { + e.preventDefault(); + var qText = $("form #queryText")[0].value; + if (qText == "" && logicExprString == "") { + alert("Inserire un termine di ricerca od una clausola attiva!"); + return false; + } + const sparqlGenerator = sparqljs.Generator; + jsonQuery = buildSQ(queryJson); + //queryFields = []; + //for (var i in jsonQuery.variables) { + // queryFields.push(jsonQuery.variables[i].variable.value); + //} + console.log(jsonQuery); + //execQuery = new sparqlGenerator().stringify(jsonQuery); + //executeQuery(); + return false; + }); + + // Evento: click sul checkbox di Ricerca avanzata + $('#cla-TabContent').on('click', '#advanSW', function() { + if ($(this).prop('checked')) { + $("#cla-Advanced").attr('style', "display: block;"); + queryJson.QueryAvanzata = "1"; + } else { + $("#cla-Advanced").attr('style', "display: none;"); + queryJson.QueryAvanzata = "0"; + //resetAdvGui(); + } + }); + + // Evento: click sul checkbox di Definisci contesto + $('#cla-TabContent').on('click', '#contextSW', function() { + if ($(this).prop('checked')) { + $("#contextTableDiv0").attr('style', "display: flex;"); + //queryJson.QueryAvanzata = "1"; + } else { + $("#contextTableDiv0").attr('style', "display: none;"); + //queryJson.QueryAvanzata = "0"; + } + }); + + + // Variabili JSON per i filtri + + var verboJson = { + "filtriverbo": { + "Diatesi": ["Attivo", "Passivo"], + "Transitivita": ["Transitivo", "Intransitivo"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Pers": ["Impersonale"], + "Rifl": ["Riflessivo"], + "Coniugazione": ["Qualsiasi coniugazione", "Prima coniugazione", "Seconda coniugazione", "Terza coniugazione", "Essere coniugazione", "Avere coniugazione"], + "Tempi": ["Qualsiasi tempo verbale", "Indicativo presente", "Indicativo passato prossimo", "Indicativo imperfetto", "Indicativo passato remoto", + "Indicativo trapassato prossimo", "Indicativo trapassato remoto", "Indicativo futuro semplice", "Indicativo futuro anteriore", "Congiuntivo presente", + "Congiuntivo imperfetto", "Congiuntivo passato", "Congiuntivo trapassato", "Condizionale presente", "Condizionale passato", "Imperativo presente", + "Infinito presente", "Infinito passato", "Participio presente", "Participio passato", "Gerundio presente", "Gerundio passato"], + "Persona" : ["Qualsiasi persona", "1ª persona singolare", "2ª persona singolare", "3ª persona singolare", "1ª persona plurale", "2ª persona plurale", "3ª persona plurale"], + "Funzione": ["Tutte le funzioni", "Aggettivo", "Sostantivo maschile", "Sostantivo femminile"], + "Declinazione": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var sostantivoJson = { + "filtrisostantivo": { + "Numero": ["Singolare", "Plurale"], + "Genere_lemma": ["Lemma femminile", "Lemma maschile"], + "Genere_forma": ["Forma femminile", "Forma maschile"], + "riflpers": ["In locuzione"], + "Declinazione_sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], + } + } + + var aggettivoJson = { + "filtriaggettivo": { + "Classe": ["1ª", "2ª"], + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Con_oggetto_indiretto": ["Con oggetto indiretto"], + "Tipo_aggettivo": ["Qualsiasi tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"], + "Grado": ["Qualsiasi grado", "Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"], + "Tipo_di_Complemento": ["Qualsiasi tipo di Complemento", "Introdotto da A", "Introdotto da CON", "Introdotto da CONTRO", "Introdotto da DA", "Introdotto da DI", "Introdotto da IN", + "Introdotto da PER", "Introdotto da SU", "Introdotto da TRA", "Introdotto da VERSO", "Introdotto da SOPRA", + "Introdotto da SOTTO", "Introdotto da DINANZI", "Introdotto da prep.", "Oggetto ind.", "Ogg. indi. + compl. con DI", "Ogg. ind. pronom."], + "Tipo_di_frase": ["Qualsiasi tipo di frase", "Con infinito retto da A", "Con infinito retto da DA", "Con infinito retto da DI", "Con infinito retto da PER", + "Con infinito retto da SE", "Con subordinata all'indic.", "Con subordinata al cong.", "In locuzione imp.+infinito", + "In locuzione imp.+che+indic.", "In locuzione imp.+che+cong.", "In locuzione imp.+se+indic.", "In locuzione imp.+se+cong.", + "In locuzione imp.+come+indic.", "In locuzione imp.+quando+indic.", "In locuzione imp.+perché+cong.", "In locuzione imp.+a+infinito"] + } + } + + var pronomeJson = { + "filtripronome": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Classe_Persona": ["Qualsiasi Classe Persona", "1ª", "2ª", "3ª"], + "Tipo": ["Qualsiasi tipo", "Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"], + "Forma_Personali_Riflessivi": ["Qualsiasi forma (Personali-Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"], + "Funzione_Personali": ["Qualsiasi funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo", + "Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"], + "Tipo_Riflessivi": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"] + } + } + + var articoloJson = { + "filtriarticolo": { + "Genere": ["Femminile", "Maschile"], + "Numero": ["Singolare", "Plurale"], + "Tipo": ["Determinativo", "Indeterminativo"] + } + } + + var avverbioJson = { + "filtriavverbio": { + "Tipo": ["Qualsiasi tipo", "Al comparativo di maggioranza", "Al comparativo di minoranza", + "Al superlativo assoluto", "Al superlativo relativo", + "In Locuzione", "In Locuzione separato", "Proclitico", "Enclitico"] + } + } + + var preposizioneJson = { + "filtripreposizione": { + "Tipo_I": ["Propria", "Impropria"], + "Tipo_preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"], + "Sintassi": ["Qualsiasi sintassi", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale", + "Causale", "Concessiva", "Consecutiva", "Temporale", "Modale", "Eccettuativa", "Esclusiva", + "Limitativa", "Comparativa", "Avversativa"], + "Complemento_(I)": ["Qualsiasi complemento (I)", "Di stato in luogo", "Di moto a luogo", "Di moto da luogo", "Di moto per luogo", + "Di luogo", "Predicativo del soggetto", "Predicativo dell'oggetto", "Di distanza", + "Di tempo determinato", "Di tempo continuato", "Di tempo", "Di termine", "Di vantaggio", + "Di svantaggio", "Di specificazione", "Di modo", "Di mezzo", "Di compagnia", + "Di unione", "Di allontanamento-separazione", "Di materia"], + "Complemento_(II)": ["Qualsiasi complemento (II)", "Di limitazione", "Di qualità", "Di causa", "Di agente", "Di causa efficiente", "Di fine o scopo", + "Di paragone", "Di argomento", "Distributivo", "Di sostituzione", "Di estensione", "Di rapporto", + "Di esclusione", "Di peso", "Di quantità", "Di colpa", "Di denominazione", "partitivo", + "Di abbondanza-privazione", "Di origine-provenienza", "Concessivo", "Di effetto", "Di pena", + "Simmetrico", "Indiretto esperiente", "Indiretto dativo", "Indiretto oggetto", "Indiretto possessore", + "Indiretto benefattivo"] + } + } + + var congiunzioneJson = { + "filtricongiunzione": { + "Coo_sub": ["Coordinativa", "Subordinativa"], + "Tipo": ["Qualsiasi tipo", "Semplice", "Composta", "Locuzione", "Locuzione separata"], + "Coord_tipo": ["Qualsiasi coord. tipo", "Copulativa", "Disgiuntiva", "Avversativa", "Esplicativa", "Conclusiva", "Correlativa"], + "Subord_tipo": ["Qualsiasi subord. tipo", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Interrogativa", + "Finali", "Causali", "Concessiva", "Consecutiva", "Temporale", "Modale", + "Eccettuativa", "Comparativa", "Condizionale", "Esclusiva", "Limitativa"] + } + } + + var onomasticacitazioneJson = { + "filtrionomastica": { + "Tipo": ["Qualsiasi tipo", "Nome proprio", "Nome proprio separato", "Titolo"] + }, + + "filtricitazione": { + "Tipo": ["Qualsiasi tipo", "Latina", "Provenzale", "Francese", "Spagnola", "Ebraica", "Greca"] + } + } + + var categorie = { + "verbovolgare": "filtriverbo", + "sostantivovolgare": "filtrisostantivo", + "pronomevolgare": "filtripronome", + "aggettivovolgare": "filtriaggettivo", + "articolovolgare": "filtriarticolo", + "avverbiovolgare": "filtriavverbio", + "preposizionevolgare": "filtripreposizione", + "congiunzionevolgare": "filtricongiunzione", + "onomasticavolgare": "filtrionomastica", + "citazionevolgare": "filtricitazione" + } + + var catGrammsenzaspec = ['all', 'interiezionevolgare'] + + var subordinazioneJson = { + "subordinazione": { + "livello": ["Qualsiasi livello di subordinazione", "principale", "coordinata a una principale", "subordinata di I grado", + "subordinata di II grado", "subordinata di III grado", "subordinata di IV grado", "subordinata di V grado", + "subordinata di VI grado", "subordinata di VII grado", "coordinata a una subordinata di I grado", + "coordinata a una subordinata di II grado", "coordinata a una subordinata di III grado", + "coordinata a una subordinata di IV grado", "coordinata a una subordinata di V grado", "pseudo-coordinata", + "parentetica", "coordinata a una parentetica"] + } + } + + var categorieJson = $.extend({}, verboJson, sostantivoJson, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson, onomasticacitazioneJson); -
-
+ // Variabili testuali per compattezza + var iconReset = '
'; + var iconCloseCond = '
'; + var emptyClaList = '
  • Nessuna clausola aggiunta.
  • '; - + var condLIplaceholderText1 = 'Trascina qui almeno 1 clausola o condizione'; + var condLIplaceholderText2 = 'Trascina qui almeno 2 clausole o condizioni'; + var condLIplaceholderText1d = 'Trascina qui almeno 1 clausola o condizione, oppure attiva le clausole inattive'; + var condLIplaceholderText2d = 'Trascina qui almeno 2 clausole o condizioni, oppure attiva le clausole inattive'; + var condLIplaceholderPart1 = '
  • '; -
  • -
    + // Variabili funzionali + var tabID = 0; + var claListLen = 0; + var condListLen = 0; + var logicExprString = ``; + var guiLogicString = ``; + var execQuery = ``; + var queryFields = []; // Contiene le intestazioni di colonna della tabella dei risultati + var contextS = [[],[],[]]; + var context0 = [[],[],[]]; + var canticheList = ["Inferno","Purgatorio","Paradiso"]; + var queryJson = JSON.parse('{"EsprLogica":"", "LogicaGui":"", "QueryAvanzata": "0"}'); + queryJson.LiDaVersion = "1.0"; + queryJson.Clausola0 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}'); + + const myEngine = new Comunica.QueryEngine(); + const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query"; -
    -
    -
    -
    -
    -
    -
    - -
    -
    - -
    -
    - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 32 - 33 - 34 -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 32 - 33 -
    -
    -
    -
    -
    -
    - -
    -
    -
    -
    - 1 - 2 - 3 - 4 - 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - 13 - 14 - 15 - 16 - 17 - 18 - 19 - 20 - 21 - 22 - 23 - 24 - 25 - 26 - 27 - 28 - 29 - 30 - 31 - 32 - 33 -
    -
    -
    -
    -
    - -
     
    - -
    -
    -
    - -
    -
    - Ricerca - Avanzata - -
    -
    -
    -
    - -
    - -
    - - -
    -
    - - - -
    - -
    - -
    -
    -
    - -
    - -
    - -
    -
    -
    -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    Cantica\Canto 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Inferno 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    Purgatorio 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    Paradiso 
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    - -
    - -
    -
    -
    - -
    - - - -
    -
    -
    - -
    - -
    - - -
    -
    - - -
    -
    -
    - -
    -
    - -
    -
    - Definisci i filtri usando le clausole e le condizioni logiche: -
    -
    - - - - - -
    - -
    -
    -
    AND
    -
    -
      -
    • Nessuna - clausola aggiunta.
    • -
    -
    -
    -
    - -
    - -
    -
    - - - - - - - - - -
      - - -
    - - -
    -
    -
    -
    -
    - - -
    -
    -
    - - -
    - -
    - + // Fine variabili + async function executeQuery(){ + $("#loader").show(); + bindingsStream = await myEngine.queryBindings(execQuery, { sources: [ { type: 'sparql', value: sparqlEndpoint }, ], }); + $("#sparqlquery").val(execQuery); + $("#copiaQuery").prop("disabled", false); + var resultTablePart1 = ''; + var resultTablePart2 = ''; + var resultTablePart3 = ''; + var resultTablePart4 = ''; + var resultTablePart5 = '
    #
    '; + var resultTable = ''; + var latestVerso = ''; + var latestResult = ''; + var rowNum = 1; + for (var i = 0; i < queryFields.length; i++) { + resultTablePart2 = resultTablePart2 + '' + queryFields[i] + ''; + }; + var resultTable = resultTablePart1 + resultTablePart2 + resultTablePart3; + $('#resultsId1').empty(); + $('#resultsId1').addClass("small pb-2") + $("#risultatitesto").empty(); + try { + bindingsStream.on('data', (binding) => { + //console.log(binding.toString()); // Quick way to print bindings for testing + //console.log(binding.has('sub')); // Will be true + latestVerso = binding.get('Verso').value + latestResult = rowNum + '. "' + latestVerso.replace(binding.get('Forma').value, '*' + binding.get('Forma').value + '*') + '" (' + binding.get('Cantica').value + ', ' + binding.get('Canto').value + ', Verso ' + binding.get('NumeroVerso').value + ')\n'; + $("#risultatitesto").append(latestResult); + resultTablePart4 = '' + rowNum++ + ''; + for (var i = 0; i < queryFields.length; i++) { + if ( binding.get(queryFields[i]) != null){ + val = binding.get(queryFields[i]).value + } else { + val = "na" + } + resultTablePart4 = resultTablePart4 + '' + val + ""; + }; + resultTable = resultTable + resultTablePart4 + ''; + $("#loader").hide(); + }); + bindingsStream.on('end', () => { + $("#loader").hide(); + resultTable = resultTable + resultTablePart5; + $("#resultsId1").append(resultTable); + $("#copiaTesto").prop("disabled", false); + $('#resultTable').DataTable( { + colReorder: true, + language: { + url: 'dataTables.it-IT.json' + }, + //dom: 'Blfrtip', + dom: "<'row'<'col-sm-12 col-md-6'l><'col-sm-6 col-md-3'f><'col-sm-6 col-md-3 text-right'B>>" + "<'row'<'col-sm-12'tr>>" + "<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>", + buttons: [ 'copy', 'excel', 'print' ] + }); + setTimeout(function(){ + buttonDiv = $("#resultsId1").find(".buttons-copy"); + $('').insertBefore(buttonDiv); + },300); + }); + } + catch(err) { + console.log(err.message); + $("#loader").hide(); + }; + }; + + // Funzione di creazione del tab delle clausole grammaticali + function addGramCla(active,tabID){ + if (active > 0) { + var checkInsert = ' checked="checked"'; + } else { + var checkInsert = ''; + }; + var sortableId = "#sortable0"; + var claText = "Categoria grammaticale:
    "; + addLIitem(sortableId,tabID,claText,checkInsert); + var clone = document.getElementById("tipogrammaticaleN").cloneNode(true); + clone.setAttribute("id","cla" + tabID); + clone.setAttribute("data-claActive", active); + clone.setAttribute("aria-labelledby","cla" + tabID + "-tab"); + clone.removeAttribute("style"); + $('#claBody' + tabID).append(clone); + // se non cambio l'id della select react non rileva l'evento onchange: + $('#cla' + tabID + " #grammtypesN").attr("id","grammtypes" + tabID); + $('#cla' + tabID + " #lemma_formaN").attr("id","lemma_forma" + tabID); + $('#cla' + tabID + " #queryTextN").attr("id","queryText" + tabID); + $('#cla' + tabID + " #opzioni_testoN").attr("id","opzioni_testo" + tabID); + } + + // Funzione di creazione delle subclausole grammaticali basate sul valore scelto + function addCatgramSubcla(tabPaneId,selectedValue){ + var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri"); + dettagliBox.html(""); + if (Object.keys(categorie).includes(selectedValue)) { + var filtro = categorie[selectedValue] + var keys = Object.keys(categorieJson[filtro]) + for (var key in keys) { + var vals = categorieJson[filtro][keys[key]] + switch (vals.length) { + case 2: + var element = $('
    '); + element.attr('class', ' d-flex flex-sm-nowrap pr-2 py-1 mb-1 form-group form-control justify-content-between'); + var rbfieldset = $('
    '); + var flexdiv1 = $('
    '); + var flexdiv2 = $('
    '); + var input1 = $(''); + var input2 = $(''); + var label1 = $('