summaryrefslogtreecommitdiffstats
path: root/scripts/lib/build_perf/html/measurement_chart.html
blob: 65f1a227adf9cb266cf7c77ccc5838cb68a80185 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<script type="text/javascript">
  chartsDrawing += 1;
  google.charts.setOnLoadCallback(drawChart_{{ chart_elem_id }});
  function drawChart_{{ chart_elem_id }}() {
    var data = new google.visualization.DataTable();

    // Chart options
    var options = {
      theme : 'material',
      legend: 'none',
      hAxis: { format: '', title: 'Commit number',
               minValue: {{ chart_opts.haxis.min }},
               maxValue: {{ chart_opts.haxis.max }} },
      {% if measurement.type == 'time' %}
      vAxis: { format: 'h:mm:ss' },
      {% else %}
      vAxis: { format: '' },
      {% endif %}
      pointSize: 5,
      chartArea: { left: 80, right: 15 },
    };

    // Define data columns
    data.addColumn('number', 'Commit');
    data.addColumn('{{ measurement.value_type.gv_data_type }}',
                   '{{ measurement.value_type.quantity }}');
    // Add data rows
    data.addRows([
      {% for sample in measurement.samples %}
        [{{ sample.commit_num }}, {{ sample.mean.gv_value() }}],
      {% endfor %}
    ]);

    // Finally, draw the chart
    chart_div = document.getElementById('{{ chart_elem_id }}');
    var chart = new google.visualization.LineChart(chart_div);
    google.visualization.events.addListener(chart, 'ready', function () {
      //chart_div = document.getElementById('{{ chart_elem_id }}');
      //chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
      png_div = document.getElementById('{{ chart_elem_id }}_png');
      png_div.outerHTML = '<a id="{{ chart_elem_id }}_png" href="' + chart.getImageURI() + '">PNG</a>';
      console.log("CHART READY: {{ chart_elem_id }}");
      chartsDrawing -= 1;
      if (chartsDrawing == 0)
        console.log("ALL CHARTS READY");
    });
    chart.draw(data, options);
}
</script>