<!DOCTYPE HTML>
<html>
  <head>
    <title>Go Build Dashboard</title>
    <style>
      body {
        font-family: sans-serif;
        padding: 0; margin: 0;
      }
      h1, h2 {
        margin: 0;
        padding: 5px;
      }
      h1 {
        background: #eee;
      }
      h2 {
        margin-top: 20px;
      }
      .build, .packages {
        margin: 5px;
        border-collapse: collapse;
      }
      .build td, .build th, .packages td, .packages th {
        vertical-align: top;
        padding: 2px 4px;
        font-size: 10pt;
      }
      .build tr.commit:nth-child(2n) {
        background-color: #f0f0f0;
      }
      .build .hash {
        font-family: monospace;
        font-size: 9pt;
      }
      .build .result {
        text-align: center;
        width: 2em;
      }
      .col-hash, .col-result {
        border-right: solid 1px #ccc;
      }
      .build .arch {
        font-size: 66%;
        font-weight: normal;
      }
      .build .time {
        color: #666;
      }
      .build .ok {
        font-size: 83%;
      }
      .build .desc, .build .time, .build .user {
        white-space: nowrap;
      }
      .paginate {
        padding: 0.5em;
      }
      .paginate a {
        padding: 0.5em;
        background: #eee;
        color: blue;
      }
      .paginate a.inactive {
        color: #999;
      }
      .fail {
        color: #C00;
      }
    </style>
  </head>
  <body>

    <h1>Go Build Status</h1>

  {{if $.Commits}}

    <table class="build">
      <colgroup class="col-hash"></colgroup>
    {{range $.Builders | builderSpans}}
      <colgroup class="col-result" span="{{.N}}"></colgroup>
    {{end}}
      <colgroup class="col-user"></colgroup>
      <colgroup class="col-time"></colgroup>
      <colgroup class="col-desc"></colgroup>
      <tr>
        <!-- extra row to make alternating colors use dark for first result -->
      </tr>
      <tr>
        <th>&nbsp;</th>
    {{range $.Builders | builderSpans}}
        <th colspan="{{.N}}">{{.OS}}</th>
    {{end}}
        <th></th>
        <th></th>
        <th></th>
      </tr>
      <tr>
        <th>&nbsp;</th>
    {{range $.Builders}}
        <th class="result arch" title="{{.}}">{{builderArchShort .}}</th>
    {{end}}
      </tr>
    {{range $c := $.Commits}}
      <tr class="commit">
        <td class="hash"><a href="{{repoURL .Hash ""}}">{{shortHash .Hash}}</a></td>
        {{range $.Builders}}
          <td class="result">
            {{with $c.Result . ""}}
              {{if .OK}}
                <span class="ok">ok</span>
              {{else}}
                <a href="/log/{{.LogHash}}" class="fail">fail</a>
              {{end}}
            {{else}}
              &nbsp;
            {{end}}
          </td>
        {{end}}
        <td class="user" title="{{.User}}">{{shortUser .User}}</td>
        <td class="time">{{.Time.Format "Mon 02 Jan 15:04"}}</td>
        <td class="desc" title="{{.Desc}}">{{shortDesc .Desc}}</td>
      </tr>
    {{end}}
    </table>

    {{with $.Pagination}}
    <div class="paginate">
      <a {{if .HasPrev}}href="?page={{.Prev}}"{{else}}class="inactive"{{end}}>newer</a>
      <a {{if .Next}}href="?page={{.Next}}"{{else}}class="inactive"{{end}}>older</a>
      <a {{if .HasPrev}}href="."{{else}}class="inactive"{{end}}>latest</a>
    </div>
    {{end}}

  {{else}}
    <p>No commits to display. Hm.</p>
  {{end}}

  {{with $.TipState}}
    {{$goHash := .Tag.Hash}}
    <h2>
      Sub-repositories at tip
      <small>(<a href="{{repoURL .Tag.Hash ""}}">{{shortHash .Tag.Hash}}</a>)</small>
    </h2>

    <table class="build">
      <colgroup class="col-package"></colgroup>
      <colgroup class="col-hash"></colgroup>
      {{range $.Builders | builderSpans}}
        <colgroup class="col-result" span="{{.N}}"></colgroup>
      {{end}}
      <colgroup class="col-user"></colgroup>
      <colgroup class="col-time"></colgroup>
      <colgroup class="col-desc"></colgroup>
      <tr>
        <!-- extra row to make alternating colors use dark for first result -->
      </tr>
      <tr>
        <th></th>
        <th></th>
        {{range $.Builders | builderSpans}}
          <th colspan="{{.N}}">{{.OS}}</th>
        {{end}}
        <th></th>
        <th></th>
        <th></th>
      </tr>
      <tr>
        <th></th>
        <th></th>
        {{range $.Builders}}
          <th class="result arch" title="{{.}}">{{builderArchShort .}}</th>
        {{end}}
        <th></th>
        <th></th>
        <th></th>
      </tr>
    {{range $pkg := .Packages}}
      <tr class="commit">
        <td><a title="{{.Package.Path}}">{{.Package.Name}}</a></td>
        <td class="hash">
          {{$h := $pkg.Commit.Hash}}
          <a href="{{repoURL $h $pkg.Commit.PackagePath}}">{{shortHash $h}}</a>
        </td>
        {{range $.Builders}}
          <td class="result">
            {{with $pkg.Commit.Result . $goHash}}
              {{if .OK}}
                <span class="ok">ok</span>
              {{else}}
                <a href="/log/{{.LogHash}}" class="fail">fail</a>
              {{end}}
            {{else}}
              &nbsp;
            {{end}}
          </td>
        {{end}}
        {{with $pkg.Commit}}
          <td class="user" title="{{.User}}">{{shortUser .User}}</td>
          <td class="time">{{.Time.Format "Mon 02 Jan 15:04"}}</td>
          <td class="desc" title="{{.Desc}}">{{shortDesc .Desc}}</td>
        {{end}}
      </tr>
    {{end}}
    </table>
  {{end}}

  </body>
</html>
