From 7e6f66c72a8fa574a1abc848b3183aeb9d3e3835 Mon Sep 17 00:00:00 2001 From: nicola Date: Sat, 18 Jun 2022 17:31:11 +0200 Subject: [PATCH] sistemata dimensione finestra "Grammaticale" dopo editing filtro --- index_work_Nik.html | 8 +- js/guimanagerNik.js | 481 +++++++++++++++++++++++++------------------- 2 files changed, 279 insertions(+), 210 deletions(-) diff --git a/index_work_Nik.html b/index_work_Nik.html index 06ce66e..145806a 100644 --- a/index_work_Nik.html +++ b/index_work_Nik.html @@ -272,14 +272,10 @@ style="width: 22px; height: 20px;"> - + src="./images/smalldone.png" style="width: 22px; height: 20px;"> - - - + src="./images/smalldone.png" style="width: 22px; height: 20px;"> diff --git a/js/guimanagerNik.js b/js/guimanagerNik.js index 83bfdbd..fa1f1c9 100644 --- a/js/guimanagerNik.js +++ b/js/guimanagerNik.js @@ -8,7 +8,7 @@ $(document).ready(function() { sintconditions = 0 filterconditions = 0 - + let filterToEdit = ""; var aggettivoJson = { "filtriaggettivo": { @@ -453,10 +453,10 @@ $(document).ready(function() { element.find('.edit-written-filter').attr('target', 'filtro-' + filterconditions); //trasformo il filtro espresso nella clausola in un oggetto JSON - + var condizioni = $("#filterform").serialize().split('&'); //alert (condizioni) - + filtro = {} for (cond in condizioni) { @@ -475,7 +475,7 @@ $(document).ready(function() { dtclass = $('
'), ddclass = $('
'); //dtclass.append([keys[key]]); - tuttiFiltri = tuttiFiltri+filtro[[keys[key]]]+", "; + tuttiFiltri = tuttiFiltri + filtro[[keys[key]]] + ", "; /*ddclass.append(filtro[[keys[key]]]); dlclass.append(dtclass); dlclass.append(ddclass); @@ -483,13 +483,13 @@ $(document).ready(function() { } //element.find('.listacondizioni').append(dlclass); let virgola = tuttiFiltri.lastIndexOf(','); - tuttiFiltri = tuttiFiltri.substring(0,virgola); - let txtAreaFiltri = '" + tuttiFiltri = tuttiFiltri.substring(0, virgola); + let txtAreaFiltri = '" ddclass.append(txtAreaFiltri); - dlclass.append(dtclass); - dlclass.append(ddclass); - element.find('.listacondizioni').append(dlclass); + dlclass.append(dtclass); + dlclass.append(ddclass); + element.find('.listacondizioni').append(dlclass); element.attr('style', 'display.block'); element.appendTo('#filtri'); @@ -515,8 +515,8 @@ $(document).ready(function() { return true; }) - - + + /** Modifica del filtro scritto @@ -525,219 +525,292 @@ $(document).ready(function() { jQuery(document).delegate('a.update-filter', 'click', function(e) { - - alert ('Update not yet implemented, in progress...') - - + + //alert('Update not yet implemented, in progress...' + filterToEdit) + + AggiornaFiltro(filterToEdit); + return true + + + } + ) + function AggiornaFiltro(filtroId) { + //e.preventDefault(); + + var content = jQuery('#filtro'), + size = jQuery('#filtri >div').length + 1, + 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('&'); + //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', ' ') } - ) - - /** - - 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'); - - 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;") - } - return true; - } else { - return false; + //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]]] + ", "; } - }); + 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'); - - - - /** - - Il Filtro "scritto" viene editato - - */ - - jQuery(document).delegate('a.edit-written-filter', 'click', function(e) { - - e.preventDefault(); - if (clausolaVisibile) - return true; - var didConfirm = confirm("Sei sicuro di voler editare il filtro?"); - if (didConfirm == true) { - var thisfilter = jQuery(this).attr('target'); - tempfiltro = condizioniFiltro[thisfilter] - tempfiltro['target']=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) - - - } + 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 + condizioniFiltro[filtroId] = filtro + + return true; - /*} else { - return false; - }*/ - }); - - /** - * - * Visualizza Categoria Grammaticale - */ - - function showCategoriaGrammaticale(valoriFiltro = {}, filtroTarget='') { - - - var content = jQuery('#categoriagrammaticale >div'), - size = jQuery('#condizioni >div').length + 1, - element = null, - element = content.clone(); - //alert("Value: " + $("#types").val()); - - - 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:block') - - } - 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 +/** - */ + Il Filtro "scritto" viene eliminato + + */ - function showClausolaSintattica(valoriFiltro = {}, filtroTarget='') { - +jQuery(document).delegate('a.delete-written-filter', 'click', function(e) { - 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(); + e.preventDefault(); + var didConfirm = confirm("Sei sicuro di voler cancellare il filtro?"); + if (didConfirm == true) { var targetDiv = jQuery(this).attr('target'); rmel = jQuery('#' + targetDiv) - var curstyle = rmel.attr('view') + 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 - if (curstyle !== undefined && curstyle === 'y') { + //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;") + } - rmel.children().attr('style', 'display:none'); - rmel.attr('view', 'n') - } - else { - rmel.attr('view', 'y') - rmel.children().attr('style', 'display:block'); - } 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 didConfirm = confirm("Sei sicuro di voler editare il filtro?"); + if (didConfirm == 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 = '') { + + + var content = jQuery('#categoriagrammaticale >div'), + size = jQuery('#condizioni >div').length + 1, + element = null, + element = content.clone(); + //alert("Value: " + $("#types").val()); + + + 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; + + +}); }); \ No newline at end of file