{% extends "base.html" %}
{% block container %}
{% if chart.display_container %}
{{ chart.container }}
{% endif %}
{% endblock container %}
{% block body %}
{% block data %}
data_{{ chart.name }}={{ chart.series_js|striptags }};
{% endblock data %}
{% block init %}
nv.addGraph(function() {
var chart = nv.models.{{ chart.model }}(){% if chart.use_interactive_guideline %}.useInteractiveGuideline(true){% endif %}{% if not chart.show_controls %}.showControls(false){% endif %}{% if chart.right_align_y_axis %}.rightAlignYAxis(true){% endif %};
chart.margin({top: {{ chart.margin_top }}, right: {{ chart.margin_right }}, bottom: {{ chart.margin_bottom }}, left: {{ chart.margin_left }}});
chart.xAxis.rotateLabels({{chart.xAxis_rotateLabel}})
chart.xAxis.staggerLabels({{chart.xAxis_staggerLabel|lower}})
chart.xAxis.showMaxMin({{chart.xAxis_showMaxMin|lower}})
var datum = data_{{ chart.name }};
{% if not chart.color_list and chart.color_category %}
chart.color(d3.scale.{{ chart.color_category }}().range());
{% endif %}
{% endblock init %}
{% block rendering_opts %}
{% if chart.stacked %}
chart.stacked(true);
{% endif %}
{% if chart.no_data_message %}
chart.noData('{{chart.no_data_message}}')
{% endif %}
{% if chart.show_controls == False %}
chart.showControls(false);
{% endif %}
{% if chart.show_values %}
chart.showValues(true);
{% endif %}
{% endblock rendering_opts %}
{% block focus %}
{% endblock focus %}
{% block axes %}
{% for axis, a in chart.axislist.items() %}
{% if a.items() %}
chart.{{ axis }}
{% for attr, value in a.items() %}
.{{ attr}}({{ value}}){% if loop.last %};
{% endif %}
{% endfor %}
{% endif %}
{% endfor %}
{% endblock axes %}
{# generate custom tooltip for the chart #}
{% block tooltip %}
{% if chart.custom_tooltip_flag %}
{% if not chart.date_flag %}
{% if chart.model == 'pieChart' %}
{% block pietooltip %}
{% endblock pietooltip %}
{% endif %}
{% else %}
{% if chart.model in ('discreteBarChart', ) %}
chart.tooltip.keyFormatter(function(d, i) {
return d3.time.format("{{ chart.charttooltip_dateformat }}")(new Date(parseInt(d)));
});
{% endif %}
{% if chart.model in ('linePlusBarChart', 'lineChart', 'multiBarChart', 'cumulativeLineChart', 'lineWithFocusChart') %}
chart.tooltip.headerFormatter(function(d, i) {
return d3.time.format("{{ chart.charttooltip_dateformat }}")(new Date(parseInt(d)));
});
{% endif %}
{% if chart.model in ('stackedAreaChart', ) %}
chart.interactiveLayer.tooltip.headerFormatter(function(d, i) {
return d3.time.format("{{ chart.charttooltip_dateformat }}")(new Date(parseInt(d)));
});
{% endif %}
{% endif %}
{% endif %}
{% endblock tooltip %}
{# the shape attribute in kwargs is not applied when #}
{# not allowing other shapes to be rendered #}
{% block legend %}
chart.showLegend({{chart.show_legend|lower}});
{% endblock legend %}
{% block custoattr %}
{# add custom chart attributes #}
{% for attr, value in chart.chart_attr.items() %}
{% if value is string and value.startswith(".") %}
chart.{{ attr }}{{ value }};
{% else %}
chart.{{ attr }}({{ value }});
{% endif %}
{% endfor %}
{% if chart.resize %}
nv.utils.windowResize(chart.update);
{% endif %}
{# include specific subchart #}
{{ chart.jschart }}
{% endblock custoattr %}
{% block y_axis_scale %}
{% if chart.y_axis_scale_min or chart.y_axis_scale_max %}
chart.forceY([{{ chart.y_axis_scale_min }},{{ chart.y_axis_scale_max }}]);
{% endif %}
{% endblock y_axis_scale %}
{% block inject %}
{# Inject data to D3 #}
d3.select('#{{ chart.name }} svg')
.datum(datum)
.transition().duration(500)
{% if chart.width %}
.attr('width', '{{ chart.width}}')
{% endif %}
{% if chart.height %}
.attr('height', {{ chart.height}})
{% endif %}
.call(chart);
{% endblock inject %}
{% block extras %}
{# extra chart attributes #}
{% if chart.extras %}
{{ chart.extras }}
{% endif %}
{% endblock extras %}
{# callback for clicking on charts #}
{% if chart.callback %}
},{{ chart.callback }});
{% endif %}
{# closing nv.addGraph #}
{% block close %}
});
{% endblock close %}
{% endblock body %}