<!DOCTYPE HTML>
<html>
  <head>
    <title>Build Status - Go Dashboard</title>
    <link rel="stylesheet" type="text/css" href="static/style.css">
  </head>

  <body>
    <a id="top"></a>

    <ul class="menu">
      <li>Build Status</li>
      <li><a href="/package">Packages</a></li>
      <li><a href="/benchmarks">Benchmarks</a></li>
      <li><a href="http://golang.org/">golang.org</a></li>
    </ul>
    
    <h1>Go Dashboard</h1>
    
    <h2>Build Status</h2>
    <table class="alternate" cellpadding="0" cellspacing="0">
      <tr>
        <th></th>
        {% for b in builders %}
          <th class="builder">{{b.goos}}<br>{{b.goarch}}<br>{{b.note}}</th>
        {% endfor %}
        <th></th>
        <th></th>
        <th></th>
      </tr>

      {% for r in revs %}
      <tr>
        <td class="revision"><span class="hash"><a href="https://code.google.com/p/go/source/detail?r={{r.node}}">{{r.node|slice:":12"}}</a></span></td>

        {% for b in r.builds %}
          <td class="result">
          {% if b.ok %}
            <span class="ok">ok</span>
          {% else %}
            {% if b.log %}
              <a class="fail" href="/log/{{b.log}}">fail</a>
            {% else %}
              &nbsp;
            {% endif %}
          {% endif %}
          </td>
        {% endfor %}

        <td class="user">{{r.user|escape}}</td>
        <td class="date">{{r.date|escape}}</td>
        <td class="desc">{{r.shortdesc|escape}}</td>
      </tr>
      {% endfor %}
    </table>
    <div class="paginate">
	<a{% if prev %} href="?n={{num}}&p={{prev}}"{% else %} class="inactive"{% endif %}>prev</a>
	<a{% if next %} href="?n={{num}}&p={{next}}"{% else %} class="inactive"{% endif %}>next</a>
	<a{% if prev %} href="?n={{num}}&p=1"{% else %} class="inactive"{% endif %}>top</a>
    </div>
  </body>
</html>
