1<!DOCTYPE html>
2<html lang="en-GB">
3 <head>
4 <title>Willow</title>
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <meta name="title" content="Willow">
7 <meta name="description" content="Forge-agnostic software release tracker">
8
9 <!-- Indicate that we support both light and dark mode -->
10 <meta name="color-scheme" content="dark light">
11
12 <!-- Preload CSS reset -->
13 <link rel="preload" href="/static/reset.css" as="style" />
14 <link rel="stylesheet" href="/static/reset.css" />
15
16 <!-- Preload CSS styles -->
17 <link rel="preload" href="/static/styles.css" as="style" />
18 <link rel="stylesheet" href="/static/styles.css" />
19 </head>
20 <body>
21 <header class="wrapper">
22 <h1>Willow <span><a href="/logout">Log out</a></span></h1>
23 <p><a href="/new">Track a new project</a></p>
24 <p class="message-{{ .MessageType }}">{{ .Message }}</p>
25 </header>
26 <div class="two_column">
27 <div class="projects">
28 <!-- Range through projects that aren't yet up-to-date -->
29 {{- range .Projects -}}
30 {{- if ne .Running (index .Releases 0).Tag -}}
31 <h2>Outdated projects</h2>
32 {{- break -}}
33 {{- end -}}
34 {{- end -}}
35 {{- range . -}}
36 {{- if ne .Running (index .Releases 0).Tag -}}
37 <div id="{{ .ID }}" class="project card">
38 <h3><a href="{{ .URL }}">{{ .Name }}</a> <span class="delete"><a href="/new?action=delete&id={{ .ID }}">Delete?</a></span></h3>
39 <p>You've selected {{ .Running }}. <a href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}">Modify?</a></p>
40 <p>Latest: <a href="{{ (index .Releases 0).URL }}">{{ (index .Releases 0).Tag }}</a></p>
41 <p><a href="#{{ (index .Releases 0).ID }}">View release notes</a></p>
42 </div>
43 {{- end -}}
44 {{- end -}}
45
46 <!-- Range through projects that _are_ up-to-date -->
47 {{- range .Projects -}}
48 {{- if eq .Running (index .Releases 0).Tag -}}
49 <h2>Up-to-date projects</h2>
50 {{- break -}}
51 {{- end -}}
52 {{- end -}}
53 {{- range .Projects -}}
54 {{- if eq .Running (index .Releases 0).Tag -}}
55 <div class="project card">
56 <h3><a href="{{ .URL }}">{{ .Name }}</a> <span class="delete"><a href="/new?action=delete&id={{ .ID }}">Delete?</a></span></h3>
57 <p>You've selected <a href="#{{ (index .Releases 0).ID }}">{{ .Running }}</a>. <a href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}">Modify?</a></p>
58 </div>
59 {{- end -}}
60 {{- end -}}
61 </div>
62 <div class="release_notes">
63 <h2>Release notes</h2>
64 {{- range .Projects -}}
65 <div id="{{ (index .Releases 0).ID }}" class="release_note card">
66 <h3>{{ .Name }}: release notes for <a href="{{ (index .Releases 0).URL }}">{{ (index .Releases 0).Tag }}</a> <span class="close"><a href="#">✖</a></span></h3>
67 {{- if eq .Forge "github" "gitea" "forgejo" -}}
68 {{- (index .Releases 0).Content -}}
69 {{- else -}}
70 <pre>
71 {{- (index .Releases 0).Content -}}
72 </pre>
73 {{- end -}}
74 <p><a class="return_to_project" href="#{{ .ID }}">Back to project</a></p>
75 </div>
76 {{- end -}}
77 </div>
78 </div>
79 </body>
80</html>