{% extends "base.html" %}
{% comment %}

Copyright 2010 Google Inc. All Rights Reserved.

This template builds a page with multiple plots in frames.
{% endcomment %}
{% block header_block %}
<center>
<h2>Chrome OS Performance Test Results</h2>
<h3>{{ tpl_params.board }} - {{ tpl_params.system }}</h3>
<div>
{% for test_name, test_keys in tpl_charts %}
  {% ifchanged %}
  <a href="#{{ test_name }}">{{ test_name }}</a>
  &nbsp;|&nbsp;
  {% endifchanged %}
{% endfor %}
<i>last updated: {% now "D M j H:i:s Y" %}</i>
</div>
</center>
{% endblock %}
{% block body_block_header %}<body style="width:99%; height:100%;">{% endblock %}
{% block html_block %}
<center>
{% for test_name, test_keys in tpl_charts %}
{% ifchanged %}
<hr><center><a name="{{ test_name }}"><strong>{{ test_name }}</strong></a></center>
{% endifchanged %}
<iframe style="height:{{ tpl_params.height|default:'600'|add:'140' }}px; width:{{ tpl_params.width|default:'800'|add:'20' }}px; border:0;"
        {% autoescape off %}
        src="/croschart/server/chart?testkey={{ test_name }},{{ test_keys }}&{{ tpl_chart_url }}">
        {% endautoescape %}
</iframe>
{% endfor %}
</center>
{% endblock %}
