combo/combo/apps/dataviz/templates/combo/chartngcell.html

59 lines
2.0 KiB
HTML

{% load i18n %}
{% if cell.title %}<h2>{{cell.title}}</h2>{% endif %}
{% if cell.chart_type == "table" %}
<div id="chart-{{cell.id}}"></div>
<script>
$(function() {
var extra_context = $('#chart-{{cell.id}}').parents('.cell').data('extra-context');
var chart_filters_form = $('#chart-filters');
$(window).on('combo:refresh-graphs', function() {
qs = [];
if(chart_filters_form)
qs.push(chart_filters_form.serialize());
if(extra_context)
qs.push('ctx=' + extra_context);
$.ajax({
url : "{% url 'combo-dataviz-graph' cell=cell.id %}?" + qs.join('&'),
type: 'GET',
success: function(data) {
$('#chart-{{cell.id}}').html(data);
}
});
}).trigger('combo:refresh-graphs');
});
</script>
{% else %}
<div style="min-height: {{cell.height}}px">
<embed id="chart-{{cell.id}}" type="image/svg+xml" style="width: 100%"/>
</div>
<script>
$(function() {
var last_width = 1;
var extra_context = $('#chart-{{cell.id}}').parents('.cell').data('extra-context');
var chart_filters_form = $('#chart-filters');
$(window).on('load resize gadjo:sidepage-toggled combo:resize-graphs', function() {
var chart_cell = $('#chart-{{cell.id}}').parent();
var new_width = Math.floor($(chart_cell).width());
var ratio = new_width / last_width;
var qs = '?width=' + new_width
if(chart_filters_form)
qs += '&' + chart_filters_form.serialize()
if(extra_context)
qs += '&ctx=' + extra_context
if (ratio > 1.2 || ratio < 0.8) {
$('#chart-{{cell.id}}').attr('src', "{% url 'combo-dataviz-graph' cell=cell.id %}" + qs);
last_width = new_width;
}
}).trigger('combo:resize-graphs');
$(window).on('combo:refresh-graphs', function() {
var qs = '?width=' + last_width
if(chart_filters_form)
qs += '&' + chart_filters_form.serialize()
if(extra_context)
qs += '&ctx=' + extra_context
$('#chart-{{cell.id}}').attr('src', "{% url 'combo-dataviz-graph' cell=cell.id %}" + qs);
});
});
</script>
{% endif %}