1<script type="text/javascript"> 2 chartsDrawing += 1; 3 google.charts.setOnLoadCallback(drawChart_{{ chart_elem_id }}); 4 function drawChart_{{ chart_elem_id }}() { 5 var data = new google.visualization.DataTable(); 6 7 // Chart options 8 var options = { 9 theme : 'material', 10 legend: 'none', 11 hAxis: { format: '', title: 'Commit number', 12 minValue: {{ chart_opts.haxis.min }}, 13 maxValue: {{ chart_opts.haxis.max }} }, 14 {% if measurement.type == 'time' %} 15 vAxis: { format: 'h:mm:ss' }, 16 {% else %} 17 vAxis: { format: '' }, 18 {% endif %} 19 pointSize: 5, 20 chartArea: { left: 80, right: 15 }, 21 }; 22 23 // Define data columns 24 data.addColumn('number', 'Commit'); 25 data.addColumn('{{ measurement.value_type.gv_data_type }}', 26 '{{ measurement.value_type.quantity }}'); 27 // Add data rows 28 data.addRows([ 29 {% for sample in measurement.samples %} 30 [{{ sample.commit_num }}, {{ sample.mean.gv_value() }}], 31 {% endfor %} 32 ]); 33 34 // Finally, draw the chart 35 chart_div = document.getElementById('{{ chart_elem_id }}'); 36 var chart = new google.visualization.LineChart(chart_div); 37 google.visualization.events.addListener(chart, 'ready', function () { 38 //chart_div = document.getElementById('{{ chart_elem_id }}'); 39 //chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">'; 40 png_div = document.getElementById('{{ chart_elem_id }}_png'); 41 png_div.outerHTML = '<a id="{{ chart_elem_id }}_png" href="' + chart.getImageURI() + '">PNG</a>'; 42 console.log("CHART READY: {{ chart_elem_id }}"); 43 chartsDrawing -= 1; 44 if (chartsDrawing == 0) 45 console.log("ALL CHARTS READY"); 46 }); 47 chart.draw(data, options); 48} 49</script> 50 51