diff --git a/js/script_Luk_Q.js b/js/script_Luk_Q.js index 3a0404b..0cd7790 100644 --- a/js/script_Luk_Q.js +++ b/js/script_Luk_Q.js @@ -248,10 +248,10 @@ $(document).ready(function() { var sostantivoJson = { "filtrisostantivo": { "Numero": ["Singolare", "Plurale"], - "Genere lemma": ["Lemma femminile", "Lemma maschile"], - "Genere forma": ["Forma femminile", "Forma maschile"], + "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"], + "Declinazione_sostantivo": ["Tutte le declinazioni", "Prima declinazione", "Seconda declinazione", "Terza declinazione"], } } @@ -260,13 +260,13 @@ $(document).ready(function() { "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"], + "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", + "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", + "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"] @@ -277,12 +277,12 @@ $(document).ready(function() { "filtripronome": { "Genere": ["Femminile", "Maschile"], "Numero": ["Singolare", "Plurale"], - "Classe/Persona": ["1ª", "2ª", "3ª"], + "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", + "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"] + "Tipo_Riflessivi": ["Qualsiasi tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"] } } @@ -304,17 +304,17 @@ $(document).ready(function() { var preposizioneJson = { "filtripreposizione": { - "Tipo I": ["Propria", "Impropria"], - "Tipo preposizione": ["Qualsiasi tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"], + "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", + "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 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", @@ -412,9 +412,10 @@ $(document).ready(function() { var claListLen = 0; var condListLen = 0; var logicExprString = ``; + var guiLogicString = ``; var execQuery = ``; var queryFields = []; // Contiene le intestazioni di colonna della tabella dei risultati - var queryJson = JSON.parse('{"EsprLogica":""}'); + var queryJson = JSON.parse('{"EsprLogica":"","LogicaGui":""}'); queryJson.LiDaVersion = "1.0"; queryJson.Clausola0 = JSON.parse('{"queryText": "", "lemma_forma": "lemma", "TipoClausola": "0", "Attiva": "0"}'); @@ -497,7 +498,6 @@ $(document).ready(function() { // Funzione di creazione delle subclausole grammaticali basate sul valore scelto function addCatgramSubcla(tabPaneId,selectedValue){ var dettagliBox = $("#" + tabPaneId + " .dettaglifiltri"); - //var dettagliBox = $(this).parent().parent().siblings(".dettaglifiltri"); dettagliBox.html(""); if (Object.keys(categorie).includes(selectedValue)) { var filtro = categorie[selectedValue] @@ -516,7 +516,7 @@ $(document).ready(function() { var label1 = $(''); var label2 = $(''); - rbfieldset.attr('id', tabPaneId + keys[key]); + rbfieldset.attr('id', tabPaneId + keys[key].replace(/\s/g, '')); rbfieldset.attr('class', 'bn'); flexdiv1.attr('class', 'custom-control custom-radio custom-control-inline'); flexdiv2.attr('class', 'custom-control custom-radio custom-control-inline'); @@ -524,16 +524,16 @@ $(document).ready(function() { input2.attr('class', 'custom-control-input'); input1.attr('type', 'radio'); input2.attr('type', 'radio'); - input1.attr('id', tabPaneId + vals[0]); - input2.attr('id', tabPaneId + vals[1]); + input1.attr('id', tabPaneId + vals[0].replace(/\s/g, '')); + input2.attr('id', tabPaneId + vals[1].replace(/\s/g, '')); input1.attr('value', vals[0]); input2.attr('value', vals[1]); input1.attr('name', tabPaneId + keys[key]); input2.attr('name', tabPaneId + keys[key]); label1.attr('class', 'custom-control-label'); label2.attr('class', 'custom-control-label'); - label1.attr('for', tabPaneId + vals[0]); - label2.attr('for', tabPaneId + vals[1]); + label1.attr('for', tabPaneId + vals[0].replace(/\s/g, '')); + label2.attr('for', tabPaneId + vals[1].replace(/\s/g, '')); label1.append(vals[0]); label2.append(vals[1]); @@ -556,7 +556,7 @@ $(document).ready(function() { flexdiv1 = $('
'); input1 = $(''); label1 = $(''); - rbfieldset.attr('id', tabPaneId + keys[key]); + rbfieldset.attr('id', tabPaneId + keys[key].replace(/\s/g, '')); rbfieldset.attr('class', 'bn'); flexdiv1.attr('class', 'custom-control custom-checkbox custom-control-inline'); input1.attr('class', 'custom-control-input'); @@ -579,7 +579,7 @@ $(document).ready(function() { var element = $(''); element.attr('class', ' col-8 form-group px-0 pb-1 m-0'); var select = $(''); - select.attr('id', tabPaneId + keys[key]); + select.attr('id', tabPaneId + keys[key].replace(/\s/g, '')); select.attr('title', keys[key]); select.attr('name', keys[key]); for (var val in vals) { @@ -766,6 +766,7 @@ $(document).ready(function() { if (claListLen == 0 && condListLen == 0) { $('#sortable0').html(emptyClaList); queryJson.EsprLogica = ""; + queryJson.LogicaGui = ""; } tabID = 0; }; @@ -850,9 +851,11 @@ $(document).ready(function() { }; }; }); - logicExprString = parseCond("#sortable0", "AND"); + logicExprString = parseCond("#sortable0", "AND", 0); + guiLogicString = parseCond("#sortable0", "AND", 1); $("#sparqlquery").val(logicExprString); queryJson.EsprLogica = logicExprString.split(' '); + queryJson.LogicaGui = guiLogicString.split(' '); }; // Funzione di refresh dei collegamenti tra elementi sortable @@ -869,29 +872,29 @@ $(document).ready(function() { }; // Funzione di parsing delle clausole e delle condizioni logiche - function parseCond(sortableList, condType){ + function parseCond(sortableList, condType, gui){ var condText = ""; var items = $(sortableList).children("li"); var itemsText = []; $(items).each(function() { if ($(this).hasClass("condLIand")) { var andID = "#" + $(this).children("ul").attr("id"); - var andText = parseCond(andID, "AND"); + var andText = parseCond(andID, "AND", gui); if (andText.length){ itemsText.push(andText); }; }; if ($(this).hasClass("condLIor")) { var orID = "#" + $(this).children("ul").attr("id"); - var orText = parseCond(orID, "OR"); + var orText = parseCond(orID, "OR", gui); if (orText.length){ itemsText.push(orText); }; }; if ($(this).hasClass("claLI")) { - if ($(this).find("input")[0].checked == true){ - var claText = $(this).find(".clatext").text(); - var claNum = "Clausola" + claText.substr(0,claText.indexOf('.')); + var claText = $(this).find(".clatext").text(); + var claNum = "Clausola" + claText.substr(0,claText.indexOf('.')); + if (gui || ($(this).find("input")[0].checked == true)){ itemsText.push(claNum); }; }; @@ -901,7 +904,11 @@ $(document).ready(function() { case 0: break; case 1: - condText += itemsText[0]; + if (gui) { + condText = "( " + condType + " " + itemsText[0] + " )"; + } else { + condText += itemsText[0]; + } break; default: condText = "( " + condType + " "; @@ -952,12 +959,12 @@ $(document).ready(function() { $("#cla0 #queryText").val(queryJson["Clausola0"].queryText); }; // 4 e 5: - var logicExpr = queryJson.EsprLogica; + guiLogicString = queryJson.LogicaGui; var clauCount = 0; var clau2Make = ""; - for (var i=0; i < logicExpr.length; i++) { + for (var i=0; i < guiLogicString.length; i++) { //console.log("- " + logicExpr[i]); - switch (logicExpr[i]) { + switch (guiLogicString[i]) { case "(": //console.log("("); break; @@ -993,7 +1000,8 @@ $(document).ready(function() { switch ($("#cla" + i + ks[j])[0].type) { case "fieldset": var sval = queryJson["Clausola" + i][ks[j]] - $("#cla" + tabID + sval).attr("checked",true); + $("#cla" + tabID + sval.replace(/\s/g, '')).attr("checked",true); + console.log(sval); break; case "select-one": $("#cla" + i + ks[j]).val([queryJson["Clausola" + i][ks[j]]]) @@ -1002,7 +1010,6 @@ $(document).ready(function() { }; }; }; - console.log(); break; case "Sintattico": addSyntCla(active);