implementazione edit filter, in progress

This commit is contained in:
cesare 2022-05-19 18:28:37 +02:00
parent bfc6f1bde0
commit caa3b597ee
2 changed files with 121 additions and 66 deletions

View File

@ -1141,11 +1141,11 @@
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="coniugazione" onchange="" title="Coniugazione"> name="coniugazione" onchange="" title="Coniugazione">
<option value="">Qualsiasi coniugazione</option> <option value="">Qualsiasi coniugazione</option>
<option value="pc">Prima</option> <option value="Prima coniugazione">Prima</option>
<option value="sc">Seconda</option> <option value="Seconda coniugazione">Seconda</option>
<option value="tc">Terza</option> <option value="Terza coniugazione">Terza</option>
<option value="ec">Essere</option> <option value="Essere">Essere</option>
<option value="ac">Avere</option> <option value="Avere">Avere</option>
</select> </select>
@ -1155,27 +1155,27 @@
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="categoria" onchange="" title="Macro categoria"> name="categoria" onchange="" title="Macro categoria">
<option value="">Qualsiasi tempo verbale</option> <option value="">Qualsiasi tempo verbale</option>
<option value="ip">Indicativo presente</option> <option value="Indicativo presente">Indicativo presente</option>
<option value="ib">Indicativo passato prossimo</option> <option value="Indicativo passato prossimo">Indicativo passato prossimo</option>
<option value="ii">Indicativo imperfetto</option> <option value="Indicativo imperfetto">Indicativo imperfetto</option>
<option value="ir">Indicativo passato remoto</option> <option value="Indicativo passato remoto">Indicativo passato remoto</option>
<option value="is">Indicativo trapassato prossimo</option> <option value="Indicativo trapassato prossimo">Indicativo trapassato prossimo</option>
<option value="it">Indicativo trapassato remoto</option> <option value="Indicativo trapassato remoto">Indicativo trapassato remoto</option>
<option value="if">Indicativo futuro semplice</option> <option value="Indicativo futuro semplice">Indicativo futuro semplice</option>
<option value="ia">Indicativo futuro anteriore</option> <option value="Indicativo futuro anteriore">Indicativo futuro anteriore</option>
<option value="cp">Congiuntivo presente</option> <option value="Congiuntivo presente">Congiuntivo presente</option>
<option value="ci">Congiuntivo imperfetto</option> <option value="Congiuntivo imperfetto">Congiuntivo imperfetto</option>
<option value="cr">Congiuntivo passato</option> <option value="Congiuntivo passato">Congiuntivo passato</option>
<option value="ct">Congiuntivo trapassato</option> <option value="Congiuntivo trapassato">Congiuntivo trapassato</option>
<option value="dp">Condizionale presente</option> <option value="Condizionale presente">Condizionale presente</option>
<option value="dr">Condizionale passato</option> <option value="Condizionale passato">Condizionale passato</option>
<option value="mp">Imperativo presente</option> <option value="Imperativo presente">Imperativo presente</option>
<option value="fp">Infinito presente</option> <option value="Infinito presente">Infinito presente</option>
<option value="fr">Infinito passato</option> <option value="Infinito passato">Infinito passato</option>
<option value="pp">Participio presente</option> <option value="Participio presente">Participio presente</option>
<option value="pr">Participio passato</option> <option value="Participio passato">Participio passato</option>
<option value="gp">Gerundio presente</option> <option value="Gerundio presente">Gerundio presente</option>
<option value="gr">Gerundio passato</option> <option value="Gerundio passato">Gerundio passato</option>
</select> </select>
</div> </div>
@ -1185,12 +1185,12 @@
name="persona" onchange="" title="Macro categoria"> name="persona" onchange="" title="Macro categoria">
<option value="">Qualsiasi persona</option> <option value="">Qualsiasi persona</option>
<option value="s1">1ª singolare</option> <option value="Prima pers s">1ª singolare</option>
<option value="s2">2ª singolare</option> <option value="Seconda pers s">2ª singolare</option>
<option value="s3">3ª singolare</option> <option value="Terza pers s">3ª singolare</option>
<option value="p1">1ª plurale</option> <option value="Prima pers p">1ª plurale</option>
<option value="p2">2ª plurale</option> <option value="Prima pers p">2ª plurale</option>
<option value="p3">3ª plurale</option> <option value="Prima pers p">3ª plurale</option>
</select> </select>
</div> </div>
<div class=" w-15 pa2 mr2"> <div class=" w-15 pa2 mr2">
@ -1198,9 +1198,9 @@
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="funzione" onchange="" title="Funzione"> name="funzione" onchange="" title="Funzione">
<option value="">Tutte le funzioni</option> <option value="">Tutte le funzioni</option>
<option value="ag">Aggettivo</option> <option value="Funz aggettivo">Aggettivo</option>
<option value="sm">Sostantivo maschile</option> <option value="Funz sostantivo maschile">Sostantivo maschile</option>
<option value="sf">Sostantivo femminile</option> <option value="Funz sostantivo femminile">Sostantivo femminile</option>
</select> </select>
</div> </div>
<div class=" w-15 pa2 mr2"> <div class=" w-15 pa2 mr2">
@ -1208,9 +1208,9 @@
class="w-100 db h2 f6 bg-near-white ba b--sliver gray" class="w-100 db h2 f6 bg-near-white ba b--sliver gray"
name="declinazione" onchange="" title="Declinazione"> name="declinazione" onchange="" title="Declinazione">
<option value="">Tutte le declinazioni</option> <option value="">Tutte le declinazioni</option>
<option value="prd">Prima</option> <option value="Prima decl">Prima</option>
<option value="sed">Seconda</option> <option value="Seconda decl">Seconda</option>
<option value="ted">Terza</option> <option value="Terza decl">Terza</option>
</select> </select>
</div> </div>

View File

@ -140,22 +140,41 @@ $(document).ready(function() {
var condizioniFiltro = {} var condizioniFiltro = {}
var clausolaVisibile= false //contiene il valore true se una clausola è gia visibile e quindi non se ne può visualizzare una seconda 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() { $('.tabs__menu-item').on('click', function() {
$(this).addClass('bg-white').addClass('red'); $(this).addClass('bg-white').addClass('red');
$(this).siblings().removeClass('bg-white').removeClass('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(); e.preventDefault();
if (clausolaVisibile) if (clausolaVisibile)
return true; return true;
else else{
clausolaVisibile=true 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'), var content = jQuery('#tiposintattico >div'),
size = jQuery('#condizioni >div').length + 1, size = jQuery('#condizioni >div').length + 1,
element = null, element = null,
@ -183,7 +202,7 @@ $(document).ready(function() {
//var pare=$(this).parents()[2]; //var pare=$(this).parents()[2];
var sbs = ($(this).closest('div')).siblings() var sbs = ($(this).closest('div')).siblings()
condizioniFiltro["Tipo Sintattico"] = $(this).val();
sbs.find(".set-filter").attr('style', 'display.block') sbs.find(".set-filter").attr('style', 'display.block')
}) })
@ -199,7 +218,7 @@ $(document).ready(function() {
//var pare=$(this).parents()[2]; //var pare=$(this).parents()[2];
var sbs = ($(this).closest('div')).siblings() var sbs = ($(this).closest('div')).siblings()
condizioniFiltro["Funzione Sintattica"] = $(this).val();
sbs.find(".set-filter").attr('style', 'display.block') sbs.find(".set-filter").attr('style', 'display.block')
}) })
@ -224,7 +243,7 @@ $(document).ready(function() {
sbs.find(".add-details").attr('target', containerid) sbs.find(".add-details").attr('target', containerid)
sbs.find(".set-filter").attr('target', containerid) sbs.find(".set-filter").attr('target', containerid)
condizioniFiltro["Categoria Grammaticale"] = $(this).val(); //condizioniFiltro["Categoria Grammaticale"] = $(this).val();
if ($(this).val() == 'verbovolgare') { if ($(this).val() == 'verbovolgare') {
var content = jQuery('#categoriaverbo >div'), 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.attr('id', 'filtro-' + filterconditions);
element.find('.delete-written-filter').attr('target', 'filtro-' + filterconditions); element.find('.delete-written-filter').attr('target', 'filtro-' + filterconditions);
element.find('.edit-written-filter').attr('target', 'filtro-' + filterconditions);
var datastring = $("#filterform").serialize(); var condizioni = $("#filterform").serialize().split('&');
alert(datastring);
//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) { for (key in keys) {
var dlclass = $('<dl class="f6 lh-title mv2" />'), var dlclass = $('<dl class="f6 lh-title mv2" />'),
dtclass = $('<dt class="dib b mainflabel" />'), dtclass = $('<dt class="dib b mainflabel" />'),
ddclass = $('<dd class="dib ml0 gray mainfvalue"/>'); ddclass = $('<dd class="dib ml0 gray mainfvalue"/>');
dtclass.append([keys[key]]); //dtclass.append([keys[key]]);
ddclass.append(condizioniFiltro[[keys[key]]]); ddclass.append(filtro[[keys[key]]]);
dlclass.append(dtclass); dlclass.append(dtclass);
dlclass.append(ddclass); dlclass.append(ddclass);
element.find('.listacondizioni').append(dlclass); element.find('.listacondizioni').append(dlclass);
@ -465,7 +497,13 @@ $(document).ready(function() {
jQuery(rmel).remove(); jQuery(rmel).remove();
jQuery(rmeldetail).remove(); jQuery(rmeldetail).remove();
clausolaVisibile=false; clausolaVisibile=false;
condizioniFiltro = {}
//aggiungo il filtro a quelli esistenti
filtro['tipoClausola']=tipoClausola
condizioniFiltro['filtro-' + filterconditions]=filtro
return true; 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) { jQuery(document).delegate('a.edit-written-filter', 'click', function(e) {
e.preventDefault(); e.preventDefault();
if (clausolaVisibile)
return true;
var didConfirm = confirm("Sei sicuro di voler editare il filtro?"); var didConfirm = confirm("Sei sicuro di voler editare il filtro?");
if (didConfirm == true) { if (didConfirm == true) {
var thisfilter = jQuery(this).attr('target');
showCategoriaGrammaticale() tempfiltro=condizioniFiltro[thisfilter]
if (tempfiltro['tipoClausola'].trim()=='grammaticale'){
clausolaVisibile=true;
tipoClausola='grammaticale'
showCategoriaGrammaticale(tempfiltro)
}
} }
return true; return true;
@ -542,7 +584,7 @@ $(document).ready(function() {
* Visualizza Categoria Grammaticale * Visualizza Categoria Grammaticale
*/ */
function showCategoriaGrammaticale() { function showCategoriaGrammaticale(valoriFiltro={}) {
var content = jQuery('#categoriagrammaticale >div'), var content = jQuery('#categoriagrammaticale >div'),
@ -557,9 +599,22 @@ $(document).ready(function() {
element.find('.set-filter').attr('targetfilter', 'cg-' + size); element.find('.set-filter').attr('targetfilter', 'cg-' + size);
element.appendTo('#condizioni'); 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); element.find('.sn').html(size);
grammarconditions = grammarconditions + 1 grammarconditions = grammarconditions + 1