internal/web/templates/releases.html
55 lines · 3387 bytes
1{{define "title"}}releases · {{.Repo.OwnerName}}/{{.Repo.Name}}{{end}}
2{{define "content"}}
3<h1>Releases</h1>
4{{if .Notice}}<p class="error" role="alert">{{.Notice}}</p>{{end}}
5{{if and .CanWrite .FreeTags}}
6{{$want := .Draft.Or "release" "tag" ""}}
7<details class="editbox"{{if .Draft.Is "release"}} open{{end}}><summary>New release</summary>
8{{if .Draft.Is "release"}}{{template "previewblock" .Draft.HTML}}{{end}}
9<form method="post" action="/{{.Repo.OwnerName}}/{{.Repo.Name}}/releases" class="commentform">
10 <p class="branchpick">
11 <label for="tag">Tag</label>
12 <select id="tag" name="tag" required>
13 {{range .FreeTags}}<option value="{{.}}"{{if eq . $want}} selected{{end}}>{{.}}</option>{{end}}
14 </select>
15 </p>
16 <p><input type="text" name="title" aria-label="Title" placeholder="title (defaults to the tag)" value="{{.Draft.Or "release" "title" ""}}"></p>
17 <p><textarea name="notes" aria-label="Notes" rows="6" placeholder="what changed">{{.Draft.Or "release" "notes" ""}}</textarea></p>
18 <p><button type="submit" class="btn">Create release</button> {{template "previewbtn"}}</p>
19</form>
20</details>
21{{else if .CanWrite}}<p class="meta">Push a tag to create a release from it.</p>{{end}}
22{{range $rel := .Releases}}
23<article class="release">
24 <header class="releasehead">
25 <h2>{{$rel.Title}}</h2>
26 <p class="meta"><span class="refchip">{{$rel.Tag}}</span> {{if $rel.Author}}{{$rel.Author}} · {{end}}{{when $rel.CreatedAt}} · <a href="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/archive/{{$rel.Tag}}.tar.gz">source tar.gz</a></p>
27 </header>
28 {{if $rel.NotesHTML}}<div class="rendered">{{$rel.NotesHTML}}</div>{{end}}
29 {{$form := printf "release:%s" $rel.Tag}}
30 {{if $.CanWrite}}<details class="editbox"{{if $.Draft.Is $form}} open{{end}}><summary>Edit</summary>
31 {{if $.Draft.Is $form}}{{template "previewblock" $.Draft.HTML}}{{end}}
32 <form method="post" action="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/releases" class="commentform">
33 <input type="hidden" name="action" value="edit">
34 <input type="hidden" name="tag" value="{{$rel.Tag}}">
35 <p><input type="text" name="title" aria-label="Title" value="{{$.Draft.Or $form "title" $rel.Title}}"></p>
36 <p><textarea name="notes" aria-label="Notes" rows="6">{{$.Draft.Or $form "notes" $rel.Notes}}</textarea></p>
37 <p><button type="submit" class="btn">Save</button> {{template "previewbtn"}}</p>
38 </form>
39 {{if $.CanAdmin}}<form method="post" action="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/releases" class="commentform">
40 <input type="hidden" name="action" value="delete">
41 <input type="hidden" name="tag" value="{{$rel.Tag}}">
42 <p class="meta">Deleting is permanent and takes the assets with it. The tag stays.</p>
43 <p>{{template "confirmfield" $rel.Tag}} <button type="submit" class="danger">Delete release</button></p>
44 </form>{{end}}</details>{{end}}
45 {{if $rel.Assets}}<table class="assets">
46 <thead><tr><th scope="col">File</th><th scope="col">Bytes</th><th scope="col">SHA-256</th></tr></thead>
47 {{range $rel.Assets}}<tr>
48 <td class="name"><a href="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/releases/download/{{$rel.Tag}}/{{.Name}}">{{.Name}}</a></td>
49 <td class="size">{{.Size}}</td>
50 <td class="sha"><code title="{{.SHA256}}">{{short .SHA256}}</code></td>
51 </tr>{{end}}
52 </table>{{end}}
53</article>
54{{else}}<p class="empty-note">no releases yet</p>{{end}}
55{{end}}