<!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.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}}>prev</a>
      <a {{if .Next}}href="?page={{.Next}}"{{else}}class="inactive"{{end}}>next</a>
      <a {{if .HasPrev}}href="?page=0}"{{else}}class="inactive"{{end}}>top</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.Time.Format "Mon 02 Jan 15:04"}}</td>
          <td class="desc" title="{{.Desc}}">{{shortDesc .Desc}}</td>
        {{end}}
      </tr>
    {{end}}
    </table>
  {{end}}

  </body>
</html>
