From caa3b597ee25bcf379b13d5cb3e607b3f4ab707a Mon Sep 17 00:00:00 2001 From: cesare Date: Thu, 19 May 2022 18:28:37 +0200 Subject: [PATCH] implementazione edit filter, in progress --- index_work_Nik.html | 76 +++++++++++++++--------------- js/guimanager.js | 111 +++++++++++++++++++++++++++++++++----------- 2 files changed, 121 insertions(+), 66 deletions(-) diff --git a/index_work_Nik.html b/index_work_Nik.html index fcb8be5..5c15c2a 100644 --- a/index_work_Nik.html +++ b/index_work_Nik.html @@ -1141,11 +1141,11 @@ class="w-100 db h2 f6 bg-near-white ba b--sliver gray" name="coniugazione" onchange="" title="Coniugazione"> - - - - - + + + + + @@ -1155,27 +1155,27 @@ class="w-100 db h2 f6 bg-near-white ba b--sliver gray" name="categoria" onchange="" title="Macro categoria"> - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + @@ -1185,12 +1185,12 @@ name="persona" onchange="" title="Macro categoria"> - - - - - - + + + + + +
@@ -1198,9 +1198,9 @@ class="w-100 db h2 f6 bg-near-white ba b--sliver gray" name="funzione" onchange="" title="Funzione"> - - - + + +
@@ -1208,9 +1208,9 @@ class="w-100 db h2 f6 bg-near-white ba b--sliver gray" name="declinazione" onchange="" title="Declinazione"> - - - + + +
diff --git a/js/guimanager.js b/js/guimanager.js index 08a4e0f..e3c4fb1 100644 --- a/js/guimanager.js +++ b/js/guimanager.js @@ -140,22 +140,41 @@ $(document).ready(function() { 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-sint', 'click', function(e) { + + jQuery(document).delegate('a.add-record', 'click', function(e) { e.preventDefault(); if (clausolaVisibile) return true; - else - clausolaVisibile=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' + } + var content = jQuery('#tiposintattico >div'), size = jQuery('#condizioni >div').length + 1, element = null, @@ -183,7 +202,7 @@ $(document).ready(function() { //var pare=$(this).parents()[2]; var sbs = ($(this).closest('div')).siblings() - condizioniFiltro["Tipo Sintattico"] = $(this).val(); + sbs.find(".set-filter").attr('style', 'display.block') }) @@ -199,7 +218,7 @@ $(document).ready(function() { //var pare=$(this).parents()[2]; var sbs = ($(this).closest('div')).siblings() - condizioniFiltro["Funzione Sintattica"] = $(this).val(); + sbs.find(".set-filter").attr('style', 'display.block') }) @@ -224,7 +243,7 @@ $(document).ready(function() { sbs.find(".add-details").attr('target', containerid) sbs.find(".set-filter").attr('target', containerid) - condizioniFiltro["Categoria Grammaticale"] = $(this).val(); + //condizioniFiltro["Categoria Grammaticale"] = $(this).val(); if ($(this).val() == 'verbovolgare') { var content = jQuery('#categoriaverbo >div'), @@ -410,7 +429,7 @@ $(document).ready(function() { /** - Il Filtro viene "scritto" + Scrittura del filtro */ @@ -434,17 +453,30 @@ $(document).ready(function() { element.attr('id', 'filtro-' + filterconditions); element.find('.delete-written-filter').attr('target', 'filtro-' + filterconditions); + element.find('.edit-written-filter').attr('target', 'filtro-' + filterconditions); - var datastring = $("#filterform").serialize(); - alert(datastring); + var condizioni = $("#filterform").serialize().split('&'); + + //trasformo il filtro in un oggetto JSON + filtro={} + //alert (condizioni) + for (cond in condizioni){ + + liscond=condizioni[cond].split('=') + if (liscond[1].trim()!='' & liscond[1].trim()!=liscond[0].trim()) + filtro[liscond[0]]=liscond[1] + } + + + //mostro il filtro nella GUI - var keys = Object.keys(condizioniFiltro) + var keys = Object.keys(filtro)//condizioniFiltro) for (key in keys) { var dlclass = $('
'), dtclass = $('
'), ddclass = $('
'); - dtclass.append([keys[key]]); - ddclass.append(condizioniFiltro[[keys[key]]]); + //dtclass.append([keys[key]]); + ddclass.append(filtro[[keys[key]]]); dlclass.append(dtclass); dlclass.append(ddclass); element.find('.listacondizioni').append(dlclass); @@ -465,7 +497,13 @@ $(document).ready(function() { jQuery(rmel).remove(); jQuery(rmeldetail).remove(); clausolaVisibile=false; - condizioniFiltro = {} + + //aggiungo il filtro a quelli esistenti + + filtro['tipoClausola']=tipoClausola + condizioniFiltro['filtro-' + filterconditions]=filtro + + return true; }) @@ -507,14 +545,7 @@ $(document).ready(function() { }); - jQuery(document).delegate('a.add-record', 'click', function(e) { - e.preventDefault(); - if (clausolaVisibile) - return true; - else - clausolaVisibile=true; - showCategoriaGrammaticale(); - }); + /** @@ -525,10 +556,21 @@ $(document).ready(function() { 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) { - - showCategoriaGrammaticale() + var thisfilter = jQuery(this).attr('target'); + tempfiltro=condizioniFiltro[thisfilter] + + if (tempfiltro['tipoClausola'].trim()=='grammaticale'){ + + clausolaVisibile=true; + tipoClausola='grammaticale' + showCategoriaGrammaticale(tempfiltro) + + + } } return true; @@ -542,7 +584,7 @@ $(document).ready(function() { * Visualizza Categoria Grammaticale */ - function showCategoriaGrammaticale() { + function showCategoriaGrammaticale(valoriFiltro={}) { var content = jQuery('#categoriagrammaticale >div'), @@ -557,9 +599,22 @@ $(document).ready(function() { element.find('.set-filter').attr('targetfilter', 'cg-' + size); element.appendTo('#condizioni'); - //per NICOLA: il cambiamento va fatto dopo che l'elemento è stato aggiunto al DOM - $("#types").val("verbovolgare").trigger("change"); + + //$("categoria").val("verbovolgare").trigger("change"); + if (!jQuery.isEmptyObject(valoriFiltro)){ + + $("#types").val(valoriFiltro['categoria']).trigger("change"); + var keys = Object.keys(valoriFiltro)//condizioniFiltro) + for (key in keys) { + myname=keys[key] + + $("[name='"+myname+"'").val(valoriFiltro[keys[key]]) + } + } + else{ + $("#types").val("verbovolgare").trigger("change"); + } element.find('.sn').html(size); grammarconditions = grammarconditions + 1