internal/web/templates/builds.html

bd49b87fce895e9f0a7588152548fb6e1821ac7d
gitbay/internal/web/templates/builds.html history · blame · raw

60 lines · 3315 bytes

 1{{define "width"}}wide{{end}}
 2{{define "title"}}builds · {{.Repo.OwnerName}}/{{.Repo.Name}}{{end}}
 3{{define "content"}}
 4<div class="withcol">
 5<nav class="sidecol" aria-label="Filters">
 6<details class="sidedrop">
 7<summary><span class="sideword">Filters</span>{{range .Facets}}{{range .Items}}{{if .Active}} <span class="sideon">{{.Label}}</span>{{end}}{{end}}{{end}}</summary>
 8  {{range .Facets}}{{if .Items}}<div class="grp">
 9  <h2 class="colhead">{{.Title}}</h2>
10  <ul>{{range .Items}}<li><a{{if .Active}} aria-current="page"{{end}} href="{{.Href}}">{{.Label}}</a></li>{{end}}</ul>
11  </div>{{end}}{{end}}
12  <form method="get" class="searchform compact">
13    <label for="ref" class="colhead">Branch</label>
14    <input type="text" id="ref" name="ref" value="{{.Filter.Ref}}" list="buildrefs" spellcheck="false">
15    <datalist id="buildrefs">{{range .Refs}}<option value="{{.}}">{{end}}</datalist>
16    <input type="hidden" name="status" value="{{.Filter.Status}}">
17    <input type="hidden" name="job" value="{{.Filter.Job}}">
18    <button type="submit" class="btn">Filter</button>
19  </form>
20</details>
21</nav>
22<div class="colmain">
23<div class="listhead">
24  <h1>Builds</h1>
25</div>
26{{if .Notice}}<p class="error" role="alert">{{.Notice}}</p>{{end}}
27{{if and .CanWrite .Jobs}}
28<form method="post" action="/{{.Repo.OwnerName}}/{{.Repo.Name}}/builds" class="setform">
29  <label for="job">Run a job now</label>
30  <select id="job" name="job">
31    {{range .Jobs}}<option value="{{.Name}}">{{.Name}}{{if .Schedule}} (schedule {{.Schedule}}){{else if .Tags}} (tags {{.Tags}}){{end}}</option>{{end}}
32  </select>
33  <button type="submit" class="btn">Run</button>
34</form>
35{{end}}
36<details class="editbox"><summary>Status badge</summary>
37<p class="meta">Paste into a README; it shows the newest build's state. Markdown:</p>
38<pre class="code" tabindex="0">[![build](https://{{.Host}}/{{.Repo.OwnerName}}/{{.Repo.Name}}/badge/build.svg)](https://{{.Host}}/{{.Repo.OwnerName}}/{{.Repo.Name}}/builds)</pre>
39<p class="meta">Org:</p>
40<pre class="code" tabindex="0">[[https://{{.Host}}/{{.Repo.OwnerName}}/{{.Repo.Name}}/builds][https://{{.Host}}/{{.Repo.OwnerName}}/{{.Repo.Name}}/badge/build.svg]]</pre>
41<p class="meta">Add <code>?job=name</code> for one job.</p>
42</details>
43<p class="meta">{{len .Builds}} build{{if ne (len .Builds) 1}}s{{end}} in {{len .Runs}} run{{if ne (len .Runs) 1}}s{{end}}{{if .Older}} on this page{{end}}{{if or .Filter.Ref .Filter.Status .Filter.Job}}, <a href="?">clear filters</a>{{end}}</p>
44<ul class="loglist rows">
45{{range .Runs}}<li>
46  <div class="commitmain">
47    <p class="subject"><a href="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/commit/{{.SHA}}">{{if .Subject}}{{.Subject}}{{else}}{{printf "%.10s" .SHA}}{{end}}</a></p>
48    <p class="meta">{{if .Subject}}<code>{{printf "%.10s" .SHA}}</code> · {{end}}{{.Ref}} · {{when .CreatedAt}}</p>
49  </div>
50  <div class="commitside">
51    <span class="badge check-{{.Status}}">{{.Status}}</span>
52    {{range .Builds}}<a class="chip check-{{.Status}}" href="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/builds/{{.Number}}">{{.Job}}</a>{{end}}
53  </div>
54</li>
55{{else}}<li class="empty">no builds{{if .CanWrite}} — push a commit with a .gitbay/ci.yml{{end}}</li>{{end}}
56</ul>
57{{if .Older}}<p class="pager"><a href="{{.Older}}">older →</a></p>{{end}}
58</div>
59</div>
60{{end}}