internal/web/templates/releases.html

v1.40.1
gitbay/internal/web/templates/releases.html history · blame · raw

70 lines · 4435 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>{{if $.CanWrite}}<th scope="col"><span class="vh">actions</span></th>{{end}}</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    {{if $.CanWrite}}<td class="act"><form method="post" action="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/releases/assets" class="inline">
52      <input type="hidden" name="action" value="remove">
53      <input type="hidden" name="tag" value="{{$rel.Tag}}">
54      <input type="hidden" name="name" value="{{.Name}}">
55      {{template "confirmfield" .Name}}
56      <button type="submit" class="danger">Remove</button>
57    </form></td>{{end}}
58  </tr>{{end}}
59  </table>{{end}}
60  {{if $.CanWrite}}<details class="editbox"><summary>Add asset</summary>
61  <form method="post" action="/{{$.Repo.OwnerName}}/{{$.Repo.Name}}/releases/assets" enctype="multipart/form-data" class="commentform">
62    <input type="hidden" name="tag" value="{{$rel.Tag}}">
63    <p><input type="file" name="file" aria-label="File" required></p>
64    <p><input type="text" name="name" aria-label="Name" placeholder="name (defaults to the file's name)"></p>
65    <p><button type="submit" class="btn">Upload</button></p>
66  </form>
67  </details>{{end}}
68</article>
69{{else}}<p class="empty-note">no releases yet</p>{{end}}
70{{end}}