sistemata dimensione finestra "Grammaticale" dopo editing filtro

This commit is contained in:
nicola 2022-06-18 17:31:11 +02:00
parent 603646a242
commit 7e6f66c72a
2 changed files with 279 additions and 210 deletions

View File

@ -272,14 +272,10 @@
style="width: 22px; height: 20px;"></a>
<a class="link dim gray f6 f2-ns dib mr0 update-filter" href="#"
title="Update" style="display:none"><img
src="./images/smalldone.png" style="width: 22px; height: 20px;"></a>
src="./images/smalldone.png" style="width: 22px; height: 20px;"></a>
<a class="link dim gray f6 f2-ns dib mr0 set-filter" href="#"
title="Set" style="display:none"><img
src="./images/smalldone.png" style="width: 22px; height: 20px;"></a>
src="./images/smalldone.png" style="width: 22px; height: 20px;"></a>
</nav>

View File

@ -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 = $('<dt class="dib b mainflabel" />'),
ddclass = $('<dd class="dib ml0 gray mainfvalue"/>');
//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 = '<textarea readonly style="resize:none" class="bg-washed-blue bn" rows="2" cols="20" name="usrtxt" wrap="hard">'+
tuttiFiltri+"</textarea>"
tuttiFiltri = tuttiFiltri.substring(0, virgola);
let txtAreaFiltri = '<textarea readonly style="resize:none" class="bg-washed-blue bn" rows="2" cols="20" name="usrtxt" wrap="hard">' +
tuttiFiltri + "</textarea>"
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 = $('<dl class="f6 lh-title mv2" />'),
dtclass = $('<dt class="dib b mainflabel" />'),
ddclass = $('<dd class="dib ml0 gray mainfvalue"/>');
tuttiFiltri = tuttiFiltri + filtro[[keys[key]]] + ", ";
}
});
let virgola = tuttiFiltri.lastIndexOf(',');
tuttiFiltri = tuttiFiltri.substring(0, virgola);
let txtAreaFiltri = '<textarea readonly style="resize:none" class="bg-washed-blue bn" rows="2" cols="20" name="usrtxt" wrap="hard">' +
tuttiFiltri + "</textarea>"
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;
});
});