dataviz: automatically refresh cells on filter change (#72465) #21
|
@ -23,11 +23,12 @@
|
|||
|
||||
<script>
|
||||
$(function () {
|
||||
const form = $('#chart-filters');
|
||||
var loaded_cell_count = 0;
|
||||
|
||||
if (!$('body').data('filters-cell-id')) {
|
||||
$('body').data('filters-cell-id', Math.random().toString(36).slice(2, 7));
|
||||
|
||||
var loaded_cell_count = 0;
|
||||
|
||||
function load_filters_cell_last() {
|
||||
if (++loaded_cell_count == $('div.chartngcell').length) {
|
||||
combo_load_cell($('.chart-filters-cell'));
|
||||
|
@ -54,7 +55,8 @@
|
|||
end_field.parent().hide();
|
||||
}
|
||||
}).change();
|
||||
$('#chart-filters').submit(function(e) {
|
||||
|
||||
form.submit(function(e) {
|
||||
e.preventDefault();
|
||||
$(window).trigger('combo:refresh-graphs');
|
||||
chart_cell = $(this).parents('.cell');
|
||||
|
@ -62,6 +64,12 @@
|
|||
new_url = ajax_cell_url + '?filters_cell_id=' + $('body').data('filters-cell-id') + '&' + $(this).serialize();
|
||||
chart_cell.data('ajax-cell-url', new_url);
|
||||
});
|
||||
|
||||
|
||||
form.change(function() {
|
||||
tjund
commented
Je pense que c'est mieux d'utiliser l'event submit sur le form plutôt que de simuler un click sur le bouton :
Je pense que c'est mieux d'utiliser l'event submit sur le form plutôt que de simuler un click sur le bouton :
`$('form#chart-filters').submit();`
tjund
commented
je pense qu'il est même possible de récupérer le form d'un champs sans faire intervenir de dom :
je pense qu'il est même possible de récupérer le form d'un champs sans faire intervenir de dom :
`this.form.submit()`
vdeniaud
commented
Changé en faveur de submit(), par contre this.form.submit() (ou this.submit()) ne fonctionne pas, car ça soumet le formulaire alors qu'on ne veut pas vraiment (il y a un e.preventDefault() dans le handler). Changé en faveur de submit(), par contre this.form.submit() (ou this.submit()) ne fonctionne pas, car ça soumet le formulaire alors qu'on ne veut pas vraiment (il y a un e.preventDefault() dans le handler).
|
||||
if(loaded_cell_count == 0) {
|
||||
form.submit();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -29,5 +29,10 @@
|
|||
end_field_template.parent().hide();
|
||||
}
|
||||
}).change();
|
||||
|
||||
$('select, input', 'div#panel-dataviz_chartngcell-{{ cell.pk }}-general').change(function() {
|
||||
$('div#cell-dataviz_chartngcell-{{ cell.pk }} button.save').click();
|
||||
});
|
||||
|
||||
});
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue
Pourquoi ne pas simplement ?
$('form#chart-filters').change(function()
Par mimétisme avec ce qui est fait côté BO, effectivement j'ai enlevé et ça fonctionne.
(côté BO ça crée une boucle infinie, pas 100% sûr à cause de quoi)
$('form#chart-filters')
utilisé 3x.Pour des questions de performance, ne pas parser 3x le dom. Parser 1x et stocker dans 1 `const form = $('#chart-filters');
Je n'arrive pas à reproduire, c'est du côté de combo sur la cellule graph ?
Modif appliquée
C'est côté paramétrage de la cellule, sélectionner n'importe quelle donnée qui ne soit pas bijoe (genre « Démarches : Nombre de demandes »).