From 5e00aec20f8a101ec6dfab964d8e0b1400536072 Mon Sep 17 00:00:00 2001 From: Luca Trupiano Date: Wed, 21 Dec 2022 19:02:41 +0100 Subject: [PATCH] nuova definizione del contesto nelle opzioni ricerca semplice --- index_3.2.html | 1976 ++++++++++++++++++++++++++++++++++++++++++++++ js/script_3.2.js | 1245 +++++++++++++++++++++++++++++ 2 files changed, 3221 insertions(+) create mode 100644 index_3.2.html create mode 100644 js/script_3.2.js diff --git a/index_3.2.html b/index_3.2.html new file mode 100644 index 0000000..69ec2d6 --- /dev/null +++ b/index_3.2.html @@ -0,0 +1,1976 @@ + + + + + + LiDa Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+ +
+
+
+
+
+
+
+ +
+
+ +
+
+ 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 + +
+
+
+
+ +
+ +
+ + +
+
+ + + +
+ +
+ +
+
+
+ +
+ +
+ +
+
+
+
+ +
+ +
+ + +
+
+ Definisci il contesto: +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+ +
+
+
Seleziona i canti:
+ 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 +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
Seleziona i canti:
+ 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 +
+
+
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
Seleziona i canti:
+ 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 +
+
+
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+ Tutta l'opera +
+
  +
+
+ +
+ +
+ + + + +
+ +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+ +
+
+ +
+
+ Definisci i filtri usando le clausole e le condizioni logiche: +
+
+ + + + + +
+ +
+
+
AND
+
+
    +
  • Nessuna + clausola aggiunta.
  • +
+
+
+
+ +
+ +
+
+ +
+
+
+
+
+ + +
+
+
+ + +
+ + +
+ + + + + + + + \ No newline at end of file diff --git a/js/script_3.2.js b/js/script_3.2.js new file mode 100644 index 0000000..94e5498 --- /dev/null +++ b/js/script_3.2.js @@ -0,0 +1,1245 @@ +/** + * + */ + +/* 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"); +*/ + +var getJsonQuery; + +$(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); + + // Funzioni di gestione del comportamento dei bottoni collapse + $('#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'); + }) + + $('.collapse').on('hide.bs.collapse', function (e) { + if (e.target.id.substr(0,9) == "collapseC") { + var claIdNum = e.target.id.substr(9); + $("#claCollapse" + claIdNum)[0].removeAttribute("style"); + $("#claCollapse" + claIdNum).removeClass( "border-bottom-0" ); + $("#claCollapse" + claIdNum).addClass( "border border-primary" ); + e.stopPropagation(); + }; + }) + + $('.collapse').on('show.bs.collapse', function (e) { + if (e.target.id.substr(0,9) == "collapseC") { + var claIdNum = e.target.id.substr(9); + $("#claCollapse" + claIdNum)[0].setAttribute("style", "background-color: #dbe5f2 !important;border-color: #3d6ca9!important;border-bottom-left-radius: 0;border-bottom-right-radius: 0;"); + $("#claCollapse" + claIdNum).removeClass( "border border-primary" ); + $("#claCollapse" + claIdNum).addClass( "border-bottom-0" ); + e.stopPropagation(); + }; + }) + + $('#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 selectable0 e definisce le funzioni + $("#selectable0").selectable({ + filter: ".sel-canto", + selected: function(event, ui) { + window.context0[ui.selected.id.substring(0,1)][ui.selected.id.substring(2)] = 1; + var tmpFocusBtn = "#plusBtn" + ui.selected.id.substring(0,1) + "-1" + $(tmpFocusBtn).focus(); + } + }); + + // 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 bottone di edit 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 trash del contesto + $('.trashClaCont').on('click', function() { + var claIdNum = $(this)[0].id.substring(12); + $('#selectable' + claIdNum + " .ui-selectee").each(function() { + $(this).attr('style', "line-height: 1.2em"); + }); + $('#selectable' + claIdNum + " .ui-selected").removeClass( "ui-selected" ) + $('#selectable' + claIdNum + ' .sel-canti-intro').each(function() { + $(this).text("Seleziona i canti:") + });; + $("#contextText" + claIdNum).html("Tutta l'opera"); + eval("window.context" + claIdNum + " = [[],[],[]]"); + eval("queryJson.Clausola" + claIdNum + ".contesto = jsonContext0"); + $('#selectable' + claIdNum + " .show").removeClass( "show" ); + }); + + // Evento: click sull'icona di add del contesto + $('.addClaCont').on('click', function() { + var claIdNum = $(this).closest('.ui-selectable').attr('id').substr(10); + var selectedCanti = $(this).closest('.card').find('.ui-selected'); + if (selectedCanti.length == 0) { + $(this).closest('.card').find('.ui-selectee').each(function() { + $(this).addClass( "ui-selected" ); + eval('window.context' + claIdNum + '[$(this).attr("id").substring(0,1)][$(this).attr("id").substring(2)] = 1'); + }); + }; + eval("var context = window.context" + claIdNum); + parseContext(claIdNum); + hideContextCanti(claIdNum); + if ($(this).closest('.card').find('span:visible').length == 1) { + $(this).closest('.card').find('div .sel-canti-intro').text("Selezionati tutti i canti."); + }; + }); + + // 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"; + } + }); + + // Evento: click sul bottone di reset azanzata + $('#cleanresult2').on('click', function() { + resetAdvGui(); + refreshClaList(); + }); + + + // 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 contextE = [[],[],[]]; + var jsonContext0 = JSON.stringify(contextE); + window.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"}'); + queryJson.Clausola0.contesto = context0; + queryJson.Clausola1 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "opzioni_testo": "parola", "TipoClausola": "0", "Attiva": "0"}'); + queryJson.Clausola1.contesto = context0; + const myEngine = new Comunica.QueryEngine(); + const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query"; + + // Fine variabili + + getJsonQuery = function(){ + return queryJson; + } + + 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){ + window["context" + tabID] = [[],[],[]]; // ricordarsi il delete + 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.setAttribute("style", "background-color: #dbe5f2 !important;"); + //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 = $('