diff --git a/NikBrowseSearchCombined.html b/NikBrowseSearchCombined.html
new file mode 100644
index 0000000..6c7fb1f
--- /dev/null
+++ b/NikBrowseSearchCombined.html
@@ -0,0 +1,2316 @@
+
+
+
+
+
+
+
+
+
+
+
+ Inferno
+ (canto
+ 1)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Info & Copyright
+ (idem)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/js/NikBrowseSearch.js b/js/NikBrowseSearch.js
index 4b64b94..e802816 100644
--- a/js/NikBrowseSearch.js
+++ b/js/NikBrowseSearch.js
@@ -1041,6 +1041,8 @@ $(document).ready(function() {
}else{
$('#FiltriGrafici').attr('style', "display:none;")
filtraPerOpen = false;
+ $('#FiltriGrafici').attr('style', "display:none;")
+
}
});
diff --git a/js/NikBrowseSearchCombined.js b/js/NikBrowseSearchCombined.js
new file mode 100644
index 0000000..598fe16
--- /dev/null
+++ b/js/NikBrowseSearchCombined.js
@@ -0,0 +1,1165 @@
+/**
+ *
+ */
+
+
+$(document).ready(function() {
+ grammarconditions = 0
+ sintconditions = 0
+ filterconditions = 0
+
+ let filterToEdit = "";
+
+ const myEngine = new Comunica.QueryEngine();
+
+ var queryFields = []; // Contiene le intestazioni di colonna della tabella dei risultati
+
+ const sparqlEndpoint = "https://hdnlab1.isti.cnr.it/fuseki/commediaontosintgra/query";
+ const sparqlGenerator = sparqljs.Generator;
+
+ var aggettivoJson = {
+ "filtriaggettivo": {
+ "Classe": ["1ª", "2ª"],
+ "Genere": ["Femminile", "Maschile"],
+ "Numero": ["Singolare", "Plurale"],
+ "Con_oggetto_indiretto": ["Con oggetto indiretto"],
+ "Tipo aggettivo": ["Tipo aggettivo", "Qualificativo", "Indefinito", "Interrogativo", "Esclamativo", "Numerale", "Dimostrativo", "Relativo", "Possessivo", "In locuzione"],
+ "Grado": ["Grado", "Comparativo di maggioranza", "Comparativo di minoranza", "Comparativo di uguaglianza", "Superlativo relativo", "Superlativo assoluto"],
+ "Tipo_di_Complemento": ["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": ["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": {
+ "Classe_Persona": ["1ª", "2ª", "3ª"],
+ "Genere": ["Femminile", "Maschile"],
+ "Numero": ["Singolare", "Plurale"],
+ "Tipo": ["Tipo", "Personale", "Riflessivo", "Interrogativo", "Esclamativo", "Dimostrativo", "Relativo", "Possessivo"],
+
+ "Forma_Personali_Riflessivi": ["Forma (Personali/Riflessivi)", "Libero", "Libero in Composizione", "Proclitico", "Enclitico"],
+ "Funzione_Personali": ["Funzione (Personali)", "Libero - soggetto", "Libero - soggetto impersonale", "Libero - complemento", "Libero - rafforzativo",
+ "Clitico - accusativo", "Clitico - dativo", "Clitico - partitivo"],
+ "Tipo_Riflessivi": ["Tipo (Riflessivi)", "Proprio", "Lessicalizzato", "Impersonale", "Passivo", "Reciproco"]
+ }
+ }
+ var articoloJson = {
+
+ "filtriarticolo": {
+
+ "Genere": ["Femminile", "Maschile"],
+ "Numero": ["Singolare", "Plurale"],
+ "Tipo": ["Determinativo", "Indeterminativo"]
+
+ }
+ }
+
+ var avverbioJson = {
+ "filtriavverbio": {
+ "Tipo": ["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": ["Tipo preposizione", "Semplice", "Articolata", "In locuzione", "In locuzione separata"],
+ "Sintassi": ["Sintassi", "Soggettiva", "Oggettiva", "Dichiarativa", "Completiva obliqua", "Finale",
+ "Causale", "Concessiva", "Consecutiva", "Temporale", "Modale", "Eccettuativa", "Esclusiva",
+ "Limitativa", "Comparativa", "Avversativa"],
+ "Complemento_(I)": ["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)": ["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": {
+
+ "Tipo": ["Tipo", "Semplice", "Composta", "Locuzione", "Locuzione separata"],
+ "Coo_sub": ["coordinativa", "subordinativa"],
+ "Coord_tipo": ["Coord. tipo", "copulativa", "disgiuntiva", "avversativa", "esplicativa", "conclusiva", "correlativa"],
+ "Subord_tipo": ["Subord. tipo", "soggettiva", "oggettiva", "dichiarativa", "completiva obliqua", "interrogativa",
+ "finali", "causali", "concessiva", "consecutiva", "temporale", "modale",
+ "eccettuativa", "comparativa", "condizionale", "esclusiva", "limitativa"]
+ }
+ }
+
+ var onomasticacitazioneJson = {
+ "filtrionomastica": {
+
+ "Tipo": ["Tipo", "Nome proprio", "Nome proprio separato", "Titolo"]
+ },
+
+ "filtricitazione": {
+
+ "Tipo": ["Tipo", "Latina", "Provenzale", "Francese", "Spagnola", "Ebraica", "Greca"]
+ }
+ }
+
+ var categorie = {
+ "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({}, pronomeJson, aggettivoJson, articoloJson, avverbioJson, preposizioneJson, congiunzioneJson, onomasticacitazioneJson);
+
+
+ var condizioniFiltro = {}
+
+ var clausolaVisibile = false //contiene il valore true se una clausola è gia visibile e quindi non se ne può visualizzare una seconda
+ var tipoClausola = ''
+
+ $('.tabs__menu-item').on('click', function() {
+ $(this).addClass('bg-white').addClass('red');
+ $(this).siblings().removeClass('bg-white').removeClass('red');
+ });
+
+ /*
+ Funzioni per visualizzare le clausole
+ */
+
+
+ jQuery(document).delegate('a.add-record', 'click', function(e) {
+ e.preventDefault();
+ if (clausolaVisibile)
+ return true;
+ else {
+ clausolaVisibile = true;
+ tipoClausola = 'grammaticale'
+ }
+ showCategoriaGrammaticale();
+ });
+
+ jQuery(document).delegate('a.add-record-sint', 'click', function(e) {
+ e.preventDefault();
+
+ if (clausolaVisibile)
+ return true;
+ else {
+ clausolaVisibile = true;
+ tipoClausola = 'sintattica'
+ }
+
+ $('#FiltriGrafici').attr('style', "display:none;")
+ filtraPerOpen = false;
+
+ var content = jQuery('#tiposintattico >div'),
+ size = jQuery('#condizioni >div').length + 1,
+ element = null,
+ element = content.clone();
+ element.attr('id', 'ts-' + size);
+
+ element.find('.remove-filter').attr('target', 'ts-' + size);
+ element.find('.set-filter').attr('targetfilter', 'ts-' + size);
+ element.appendTo('#condizioni');
+ element.find('.sn').html(size);
+ sintconditions = sintconditions + 1
+ if (size == 1)
+ jQuery('#grammarbutton').attr('style', "display:block;")
+ });
+
+ /**
+ SCELTA TIPO SINTATTICO
+ */
+
+
+ jQuery(document).delegate('select.synttype', 'change', function(e) {
+ e.preventDefault();
+
+ //alert(($(this).closest('div')).closest('div').attr('id'))
+ //var pare=$(this).parents()[2];
+ var sbs = ($(this).closest('div')).siblings()
+
+
+ sbs.find(".set-filter").attr('style', 'display.block')
+
+ })
+
+ /** SCELTA FUNZIONE SINTATTICA
+ */
+
+
+ jQuery(document).delegate('select.syntfun', 'change', function(e) {
+ e.preventDefault();
+
+ //alert(($(this).closest('div')).closest('div').attr('id'))
+ //var pare=$(this).parents()[2];
+ var sbs = ($(this).closest('div')).siblings()
+
+
+ sbs.find(".set-filter").attr('style', 'display.block')
+
+ })
+
+ /**
+
+ SCELTA CATEGORIA GRAMMATICALE
+
+ */
+ jQuery(document).delegate('select.catgram', 'change', function(e) {
+ e.preventDefault();
+
+ var pare = $(this).parents()[2];
+ var sbs = ($(this).closest('div')).siblings()
+
+
+ sbs.find(".add-details").attr('style', 'display.block')
+ sbs.find(".set-filter").attr('style', 'display.block')
+
+
+ containerid = 'dettaglio_' + pare.id;//$(this).closest('div').attr('id')
+ sbs.find(".add-details").attr('target', containerid)
+ sbs.find(".set-filter").attr('target', containerid)
+
+ //condizioniFiltro["Categoria Grammaticale"] = $(this).val();
+ if ($(this).val() == 'verbovolgare') {
+
+ var content = jQuery('#categoriaverbo >div'),
+ size = jQuery('#dettaglifiltri').length + 1,
+ element = null,
+ element = content.clone();
+
+ }
+ if ($(this).val() == 'sostantivovolgare') {
+ var content = jQuery('#categoriasostantivo >div'),
+ size = jQuery('#dettaglifiltri').length + 1,
+ element = null,
+ element = content.clone();
+ }
+
+
+
+ if (Object.keys(categorie).includes($(this).val())) {
+
+ var filtro = categorie[$(this).val()]
+
+ var keys = Object.keys(categorieJson[filtro])
+ for (key in keys) {
+
+ var vals = categorieJson[filtro][keys[key]]
+ if (vals.length == 2) {
+ var element = $('
');
+ element.attr('class', ' w-15 pa1 mr2');
+ var rbfieldset = $('
'),
+ flexdiv1 = $('
'),
+ flexdiv2 = $('
'),
+ input1 = $('
'),
+ input2 = $('
'),
+ label1 = $('
'),
+ label2 = $('
');
+
+ rbfieldset.attr('id', keys[key]);
+ rbfieldset.attr('class', 'bn');
+ flexdiv1.attr('class', 'flex items-center mb2');
+ flexdiv2.attr('class', 'flex items-center mb2');
+ input1.attr('class', 'mr2 f6');
+ input2.attr('class', 'mr2 f6');
+ input1.attr('type', 'radio');
+ input2.attr('type', 'radio');
+ input1.attr('id', vals[0]);
+ input2.attr('id', vals[1]);
+ input1.attr('value', vals[0]);
+ input2.attr('value', vals[1]);
+ input1.attr('name', keys[key]);
+ input2.attr('name', keys[key]);
+ label1.attr('class', 'lh-copy');
+ label2.attr('class', 'lh-copy');
+ label1.attr('for', vals[0]);
+ label2.attr('for', vals[1]);
+ label1.append(vals[0]);
+ label2.append(vals[1]);
+
+ input1.appendTo(flexdiv1);
+ input2.appendTo(flexdiv2);
+ label1.appendTo(flexdiv1);
+ label2.appendTo(flexdiv2);
+ flexdiv1.appendTo(rbfieldset);
+ flexdiv2.appendTo(rbfieldset);
+ rbfieldset.appendTo(element);
+ element.attr('style', 'display:block')
+ element.appendTo('#dettaglifiltri');
+ }
+ }
+ for (key in keys) {
+ var vals = categorieJson[filtro][keys[key]]
+ if (vals.length == 1) {
+ var element = $('
');
+ element.attr('class', ' w-15 pa1 mr2');
+ var rbfieldset = $('
'),
+ flexdiv1 = $('
'),
+ input1 = $('
'),
+ label1 = $('
');
+ rbfieldset.attr('id', keys[key]);
+ rbfieldset.attr('class', 'bn');
+ flexdiv1.attr('class', 'flex items-center mb2');
+ input1.attr('class', 'mr2 f6');
+ input1.attr('type', 'checkbox');
+ input1.attr('id', vals[0]);
+ input1.attr('value', vals[0]);
+ input1.attr('name', keys[key]);
+ label1.attr('class', 'lh-copy');
+ label1.attr('for', vals[0]);
+ label1.append(vals[0]);
+
+ input1.appendTo(flexdiv1);
+ label1.appendTo(flexdiv1);
+ flexdiv1.appendTo(rbfieldset);
+ rbfieldset.appendTo(element);
+ element.attr('style', 'display:block')
+ element.appendTo('#dettaglifiltri');
+ }
+ }
+
+ for (key in keys) {
+ var vals = categorieJson[filtro][keys[key]]
+ if (vals.length > 2) {
+ var element = $('
');
+ element.attr('class', ' w-15 pa1 mr2');
+ var select = $('
')
+ select.attr('id', keys[key])
+ select.attr('title', keys[key])
+ select.attr('name', keys[key])
+ for (val in vals) {
+ //alert(vals[val])
+ var seloption = $('
');
+ seloption.attr('value', vals[val]);
+ seloption.append(vals[val])
+ seloption.appendTo(select)
+ }
+ select.appendTo(element)
+ element.attr('style', 'display:block')
+
+ element.appendTo('#dettaglifiltri');
+
+
+ }
+
+ }
+ }
+
+
+ if (element === undefined) {
+ var test = jQuery('#' + containerid)
+ sbs.find(".add-details").attr('style', 'display:block')
+ sbs.find(".set-filter").attr('style', 'display:block')
+ test.remove()
+ }
+ else {
+ element.attr('style', "display: block;")
+ //element.appendTo('#dettaglifiltri');
+
+
+ var test = jQuery('#' + containerid)
+
+ test.remove()
+
+
+ element.appendTo('#dettaglifiltri');
+
+ var container = jQuery('#dettaglifiltri');
+ container.attr('id', containerid);
+ var divdf = jQuery('#divdettaglifiltri >div'),
+ detelement = null,
+ detelement = divdf.clone();
+ detelement.attr('id', 'dettaglifiltri')
+ detelement.appendTo("#query")
+
+
+ //element.find('.sn').html(size);
+ }
+
+
+ });
+
+
+
+ jQuery(document).delegate('a.remove-filter', 'click', function(e) {
+
+ e.preventDefault();
+
+ var didConfirm = confirm("Sei sicuro di voler eliminare la clausola?");
+ if (didConfirm == true) {
+
+ var targetDiv = jQuery(this).attr('target');
+
+ rmel = jQuery('#' + targetDiv)
+ rmeldetail = jQuery('#' + 'dettaglio_' + targetDiv)
+ jQuery(rmel).remove();
+ jQuery(rmeldetail).remove();
+ clausolaVisibile = false;
+ return true;
+ } else {
+ return false;
+ }
+ });
+
+
+
+ /**
+
+ Scrittura del filtro
+
+ */
+
+
+ jQuery(document).delegate('a.set-filter', '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)
+
+ filtro = {}
+
+ 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);
+ 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;
+ })
+
+
+ /**
+
+ Modifica del filtro scritto
+
+ */
+
+
+ jQuery(document).delegate('a.update-filter', 'click', function(e) {
+
+ //alert('Update not yet implemented, in progress...' + filterToEdit)
+
+ AggiornaFiltro(filterToEdit);
+ return true
+
+
+ }
+ )
+
+
+
+ function espressioneLogica(condizioniLogiche) {
+ //definizione struttura della query
+ var EsprLogica = ""
+ filters = $("[id^=filtro-]")
+ term = "";
+ filters.each(function(index, element) {
+ var mx = $(this).find('#andor');
+ if (index == 0) {
+ EsprLogica += ''
+ term = $(this).attr('id')
+ }
+ else {
+ EsprLogica = "(" + mx.val() + " " + term + " " + $(this).attr('id') + ") "
+ term = EsprLogica
+ }
+ });
+ condizioniLogiche['EsprLogica'] = EsprLogica.split(" ")
+ return condizioniLogiche;
+ }
+
+ async function execMySparqlQuery(spQuery) {
+ $("#loader").show();
+ //alert(new sparqlGenerator().stringify(spQuery));
+ bindingsStream = await myEngine.queryBindings(spQuery, { sources: [{ type: 'sparql', value: sparqlEndpoint },], });
+
+ $("#sparqlquery").val(spQuery);
+ $("#copiaQuery").prop("disabled", false);
+ var resultTablePart1a = '
';
+ var resultTablePart1 = '';
+ var resultTablePart2 = '# | ';
+ var resultTablePart3 = '
';
+ var resultTablePart4 = '';
+ var resultTablePart5 = '
';
+ var resultTable = '';
+ 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();
+ $("#risultatitesto").append("[\n");
+ bindingsStream.on('data', (binding) => {
+ //console.log(binding.toString()); // Quick way to print bindings for testing
+ //console.log(binding.has('sub')); // Will be true
+ 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 + '
';
+ $("#risultatitesto").append(binding.toString() + ",\n");
+ $("#loader").hide();
+ //console.log(binding.get('form').value);
+ //console.log(binding.get('form').termType);
+ //console.log(binding.get('pred').value);
+ //console.log(binding.get('obj').value);
+ });
+ bindingsStream.on('end', () => {
+ resultTable = resultTable + resultTablePart5;
+ $("#resultsId1").append(resultTable);
+ $("#risultatitesto").append("]");
+ $("#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);
+ });
+ }
+ function AggiornaFiltro(filtroId) {
+
+ var content = jQuery('#filtro'),
+ element = null,
+ element = content.clone();
+
+
+ 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('&');
+
+ filtro = {}
+
+ 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);
+ for (key in keys) {
+ tuttiFiltri = tuttiFiltri + filtro[[keys[key]]] + ", ";
+ }
+ let virgola = tuttiFiltri.lastIndexOf(',');
+ tuttiFiltri = tuttiFiltri.substring(0, virgola);
+
+
+ let filterNum = filtroId.substring(7);
+
+
+ $('#textarea-' + filterNum).val(tuttiFiltri);
+
+
+
+ if (filterNum != 1) {
+ element.find('.andorconditions').attr('style', 'display.none');
+ }
+
+
+
+ // rimuovo la finestra filtro
+
+ rmel = jQuery('#' + "cg-2")
+ rmeldetail = jQuery('#' + 'dettaglio_' + "cg-2")
+ jQuery(rmel).remove();
+ jQuery(rmeldetail).remove();
+ clausolaVisibile = false;
+
+ //aggiungo il filtro a quelli esistenti nel json
+
+ filtro['tipoClausola'] = tipoClausola
+ condizioniFiltro[filtroId] = filtro
+
+
+ return true;
+ }
+ /**
+
+ Il Filtro "scritto" viene eliminato
+
+ */
+
+ jQuery(document).delegate('a.delete-written-filter', 'click', function(e) {
+
+ e.preventDefault();
+ var didConfirm = confirm("Sei sicuro di voler cancellare il filtro?");
+ if (didConfirm == true) {
+
+ var targetDiv = jQuery(this).attr('target'); // nome filtro
+
+ rmel = jQuery('#' + targetDiv)
+ rmeldetail = jQuery('#' + targetDiv)
+ jQuery(rmel).remove();
+ jQuery(rmeldetail).remove();
+ // se c'è un solo filtro, mi assicuro che non sia visibile il dropbox and/or
+ size = jQuery('#filtri >div').length
+
+ //nasconde la condizione logica dal primo della lista dei filtri
+ if (size > 0) {
+ var filtriscr = jQuery('#filtri >div');
+ filtriscr.first().find('.andorconditions').attr('style', 'display:none');
+ } else { // eliminato l'ultimo filtro
+ jQuery('#filtri').attr('style', "display:none;")
+ }
+
+ delete condizioniFiltro[targetDiv];
+ return true;
+ } else {
+ return false;
+ }
+ });
+
+
+
+
+ /**
+
+ Il Filtro "scritto" viene editato
+
+ */
+
+ jQuery(document).delegate('a.edit-written-filter', 'click', function(e) {
+
+ e.preventDefault();
+ if (clausolaVisibile)
+ return true;
+
+ var thisfilter = jQuery(this).attr('target');
+ tempfiltro = condizioniFiltro[thisfilter]
+ tempfiltro['target'] = thisfilter
+
+ filterToEdit = thisfilter;
+
+ if (tempfiltro['tipoClausola'].trim() == 'grammaticale') {
+
+ clausolaVisibile = true;
+ tipoClausola = 'grammaticale'
+ showCategoriaGrammaticale(tempfiltro, thisfilter)
+
+
+ }
+ if (tempfiltro['tipoClausola'].trim() == 'sintattica') {
+
+ clausolaVisibile = true;
+ tipoClausola = 'sintattica'
+ showClausolaSintattica(tempfiltro, thisFilter)
+
+
+ }
+
+ return true;
+ /*} else {
+ return false;
+ }*/
+ });
+
+ /**
+ *
+ * Visualizza Categoria Grammaticale
+ */
+
+ function showCategoriaGrammaticale(valoriFiltro = {}, filtroTarget = '') {
+
+ $('#FiltriGrafici').attr('style', "display:none;")
+ filtraPerOpen = false;
+
+
+ var content = jQuery('#categoriagrammaticale >div'),
+ size = jQuery('#condizioni >div').length + 1,
+ element = null,
+ element = content.clone();
+
+ checkedField = $('input[name=lemma_forma]:checked', '#filterform').val();
+
+ var radios = $(":radio");
+
+
+ //$(":radio").prop("checked", false);
+ $(":checkbox").prop("checked", false);
+ //
+ // for (radio in radios) {
+ // if (radios[radio].val == checkedField) {
+ // radios[radio].checked = true;
+ // }
+ // }
+
+ element.attr('id', 'cg-' + size);
+ element.find('.remove-filter').attr('target', 'cg-' + size);
+ element.find('.set-filter').attr('targetfilter', 'cg-' + size);
+ element.appendTo('#condizioni');
+
+ if (!jQuery.isEmptyObject(valoriFiltro)) { // sto facendo la modfica di un filtro
+
+ $("#types").val(valoriFiltro['categoria']).trigger("change");
+ var keys = Object.keys(valoriFiltro)//condizioniFiltro)
+ for (key in keys) {
+ myname = keys[key]
+ myname = myname.replaceAll('%20', ' ')
+ myval = valoriFiltro[keys[key]]
+
+ var edelement = $("[name='" + myname + "'");
+ var edeltype = edelement.attr('type')
+ //alert(edeltype)
+ if (edeltype !== undefined & (edeltype == 'radio' | edeltype == 'checkbox')) {
+ $('[value="' + myval + '"]').prop('checked', true);
+ }
+ else {
+ $("[name='" + myname + "'").val(myval)
+ }
+
+
+
+ }
+ element.find('.update-filter').attr('targetfilter', filtroTarget);
+ element.find(".set-filter").attr('style', 'display:none')
+ element.find(".update-filter").attr('style', 'display:compact')
+
+ }
+ else { //sto creando una clausola grammaticale nuova, definisco il valore di default
+
+ $("#types").val("verbovolgare").trigger("change");
+ }
+ valoriFiltro = {}
+ element.find('.sn').html(size);
+ grammarconditions = grammarconditions + 1
+
+ if (size == 1)
+ jQuery('#grammarbutton').attr('style', "display:block;")
+
+ }
+
+ /**
+ Visualizza Clausola Sintattica
+
+ */
+
+ function showClausolaSintattica(valoriFiltro = {}, filtroTarget = '') {
+
+
+ var content = jQuery('#tiposintattico >div'),
+ size = jQuery('#condizioni >div').length + 1,
+ element = null,
+ element = content.clone();
+ element.attr('id', 'ts-' + size);
+
+ element.find('.remove-filter').attr('target', 'ts-' + size);
+ element.find('.set-filter').attr('targetfilter', 'ts-' + size);
+ element.appendTo('#condizioni');
+ if (!jQuery.isEmptyObject(valoriFiltro)) { // sto facendo l'edit di un filtro
+
+ $("#types").val(valoriFiltro['categoria']).trigger("change");
+ var keys = Object.keys(valoriFiltro)//condizioniFiltro)
+ for (key in keys) {
+ myname = keys[key]
+ myval = valoriFiltro[keys[key]]
+ var edelement = $("[name='" + myname + "'");
+ var edeltype = edelement.attr('type')
+ //alert(edeltype)
+ if (edeltype !== undefined & (edeltype == 'radio' | edeltype == 'checkbox')) {
+ $('[value="' + myval + '"]').prop('checked', true);
+ }
+ else {
+ $("[name='" + myname + "'").val(myval)
+ }
+
+
+ }
+ }
+
+ element.find('.sn').html(size);
+ sintconditions = sintconditions + 1
+ if (size == 1)
+ jQuery('#grammarbutton').attr('style', "display:block;")
+ }
+
+
+ jQuery(document).delegate('a.add-details', 'click', function(e) {
+ e.preventDefault();
+
+ var targetDiv = jQuery(this).attr('target');
+
+ rmel = jQuery('#' + targetDiv)
+ var curstyle = rmel.attr('view')
+
+ if (curstyle !== undefined && curstyle === 'y') {
+
+ rmel.children().attr('style', 'display:none');
+ rmel.attr('view', 'n')
+ }
+ else {
+ rmel.attr('view', 'y')
+ rmel.children().attr('style', 'display:block');
+ }
+
+ return true;
+
+
+ });
+
+ var tabellaCanti ="";
+ var CantiParadiso = false;
+ var CantiPurgatorio = false;
+ var CantiInferno = false;
+ var filtraPerOpen;
+ var CantiInfernoOpen = false;
+ var CantiPurgatorioOpen = false;
+ var CantiParadisoOpen = false;
+
+
+ jQuery(document).delegate('a.selectInferno', 'click', function(e) {
+ e.preventDefault();
+
+ tabellaCanti ="";
+
+ for (j=1;j<35;j++){
+ tabellaCanti = tabellaCanti +
+ ''+j+' ';
+ }
+
+ if (!CantiInferno){
+ $('#CantiInferno').append(tabellaCanti);
+ CantiInferno = true;
+ }
+
+ if (!CantiInfernoOpen){
+ $('#CantiInferno').attr('style', "display:block;")
+ CantiInfernoOpen = true;
+ }else{
+ $('#CantiInferno').attr('style', "display:none;")
+ CantiInfernoOpen = false;
+ }
+
+ $('#CantiParadiso').attr('style', "display:none;")
+ $('#CantiPurgatorio').attr('style', "display:none;")
+
+ return true;
+ });
+
+ jQuery(document).delegate('a.selectPurgatorio', 'click', function(e) {
+ e.preventDefault();
+
+ tabellaCanti ="";
+
+ for (j=1;j<34;j++){
+ tabellaCanti = tabellaCanti +
+ ''+j+' ';
+ }
+
+ if (!CantiPurgatorio){
+ $('#CantiPurgatorio').append(tabellaCanti);
+ CantiPurgatorio = true;
+ }
+
+
+ if (!CantiPurgatorioOpen){
+ $('#CantiPurgatorio').attr('style', "display:block;")
+ CantiPurgatorioOpen = true;
+ }else{
+ $('#CantiPurgatorio').attr('style', "display:none;")
+ CantiPurgatorioOpen = false;
+ }
+
+ $('#CantiParadiso').attr('style', "display:none;")
+ $('#CantiInferno').attr('style', "display:none;")
+
+ return true;
+ });
+
+
+ jQuery(document).delegate('a.selectParadiso', 'click', function(e) {
+ e.preventDefault();
+
+ tabellaCanti ="";
+
+ for (j=1;j<34;j++){
+ tabellaCanti = tabellaCanti +
+ ''+j+' ';
+ }
+
+ if (!CantiParadiso){
+ $('#CantiParadiso').append(tabellaCanti);
+ CantiParadiso = true;
+ }
+
+ if (!CantiParadisoOpen){
+ $('#CantiParadiso').attr('style', "display:block;")
+ CantiParadisoOpen = true;
+ }else{
+ $('#CantiParadiso').attr('style', "display:none;")
+ CantiParadisoOpen = false;
+ }
+
+ $('#CantiPurgatorio').attr('style', "display:none;")
+ $('#CantiInferno').attr('style', "display:none;")
+
+ return true;
+ });
+
+ jQuery(document).delegate('#searchQuit', 'click', function(e) {
+ e.preventDefault();
+ $('.labelVai span').html("Vai a:");
+ $('.searchCosa').attr('style', "display:none;")
+ $('#grammarbutton').attr('style', "display:block; width: 51px; height: 51px;");
+ $('#quitGoButton').attr('style', "display:none;");
+
+ });
+
+ jQuery(document).delegate('a.filtraPer', 'click', function(e) {
+ e.preventDefault();
+
+ if (!filtraPerOpen){
+ $('#FiltriGrafici').attr('style', "display:block;")
+ filtraPerOpen = true;
+ }else{
+ $('#FiltriGrafici').attr('style', "display:none;")
+ filtraPerOpen = false;
+ $('#categoriagrammaticale').attr('style', "display:none;")
+
+ }
+
+ });
+
+ jQuery(document).delegate('#searchGo', 'click', function(e) {
+ e.preventDefault();
+ var size = Object.keys(condizioniFiltro).length;
+ if (size == 0) {
+ var clausola = $("#searchValue").val()
+ clausola = clausola.trim();
+ if (clausola == "" || clausola == ' ') {
+ return false
+ }
+
+ filtro = {};
+ filtro['query'] = clausola
+ condizioniFiltro['filtro-1'] = filtro;
+
+ }
+
+ //definizione struttura della query
+
+ condizioniFiltro = espressioneLogica(condizioniFiltro);
+ // fine definizione struttura
+
+ spquery = buildSQ(condizioniFiltro)
+ queryFields = [];
+ for (var i in spquery.variables) {
+ queryFields.push(spquery.variables[i].variable.value);
+ }
+ execMySparqlQuery(new sparqlGenerator().stringify(spquery));
+
+ $('.labelVai span').html("Vai a:");
+ $('.searchCosa').attr('style', "display:none;")
+ $('#grammarbutton').attr('style', "display:block; width: 51px; height: 51px;");
+ $('#quitGoButton').attr('style', "display:none;");
+
+ });
+
+ $(':radio[name=lemma_forma]').change(function() {
+ //alert(this.value);
+
+ var role = $(':radio[name=lemma_forma]:checked').val();
+
+ if (role == 'lemmaRadio'){
+ $('#lemmaCheck').prop('disabled', false);
+ $('#formaCheck').prop('disabled', false);
+// $('#lemmaCheck').prop('checked', true);
+// $('#formaCheck').prop('checked', true);
+ }else{
+ if (role == 'stringaRadio'){
+ $('#lemmaCheck').prop('disabled', true);
+ $('#formaCheck').prop('disabled', true);
+ }
+ }
+ });
+
+
+ jQuery(document).delegate('#grammarbutton', 'click', function(e) {
+
+
+ $('.labelVai span').html("Cerca in:");
+ /*$('.searchCosa').attr('style', "display:block;")
+ $('#lemmaCheck').prop('disabled', true);
+ $('#formaCheck').prop('disabled', true);
+ $('#lemmaCheck').prop('checked', false);
+ $('#formaCheck').prop('checked', false);
+
+ $('#grammarbutton').attr('style', "display:none;");
+ $('#quitGoButton').attr('style', "display:block;");
+
+ $('#searchValue').val("");
+ $('#stringaRadio').attr('checked', true).click();
+ //$(this).prop('disabled', true);
+ $('#FiltriGrafici').attr('style', "display:none;")
+
+ filtraPerOpen = false;*/
+ $('#apricerca').attr('style', "display:block;")
+
+ return true
+ }
+ )
+
+ $('#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();
+ }
+ });
+
+ //Cesare
+ $(function() {
+ $("#filtri").sortable({
+ //items: "div:(.ui-state-enabled)"
+ cursor: 'move',
+ update: function() {
+
+ myfilters = $("[id^=filtro-]")
+
+ $("[id^=filtro-]").each(function(index, element) {
+ var mx = $(this).find('#andor');
+ if (index == 0)
+ mx.attr('style', "display:none;")
+ else
+ mx.attr('style', "display:block;")
+
+
+ //console.log($( this ));
+ });
+
+
+ }
+ });
+ });
+
+});
\ No newline at end of file