{% extends "perfchart/plot_chart_base.html" %}
{% comment %}

Copyright 2010 Google Inc. All Rights Reserved.

This template implements chart point click-through to the data.
{% endcomment %}
{% block body_block_header %}<body>{% endblock %}
    {% block add_listener %}
    google.visualization.events.addListener(chart, 'select', function(){
    var build_tags = [
    {% for job_tag in tpl_chart.job_tags %}
    '{{ job_tag }}'{% if not forloop.last %},{% endif %}
    {% endfor %}
    ];
    window.open('http://cautotest/results/' +
                build_tags[chart.getSelection()[0].row] +
                '/' + '{{ tpl_chart.test_name }}' + '/results');
    });
    {% endblock %}
    {% block subtitle_block %}
    <h5>
      <a href = "{{ tpl_diffpath }}" target="_blank">show commit list</a>
    </h5>
    {% endblock %}
