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        </header>
25        <div class="two_column">
26            <div class="projects">
27                <!-- Range through projects that aren't yet up-to-date -->
28                {{- range . -}}
29                {{- if ne .Running (index .Releases 0).Tag -}}
30                <h2>Outdated projects</h2>
31                {{- break -}}
32                {{- end -}}
33                {{- end -}}
34                {{- range . -}}
35                {{- if ne .Running (index .Releases 0).Tag -}}
36                <div class="project card">
37                    <h3><a href="{{ .URL }}">{{ .Name }}</a>   <span class="delete"><a href="/new?action=delete&url={{ .URL }}">Delete?</a></span></h3>
38                    <p>You've selected {{ .Running }}. <a href="/new?action=update&url={{ .URL }}&forge={{ .Forge }}&name={{ .Name }}">Modify?</a></p>
39                    <p>Latest: <a href="{{ (index .Releases 0).URL }}">{{ (index .Releases 0).Tag }}</a></p>
40                    <p><a href="#{{ (index .Releases 0).ID }}">View release notes</a></p>
41                </div>
42                {{- end -}}
43                {{- end -}}
44
45                <!-- Range through projects that _are_ up-to-date -->
46                {{- range . -}}
47                {{- if eq .Running (index .Releases 0).Tag -}}
48                <h2>Up-to-date projects</h2>
49                {{- break -}}
50                {{- end -}}
51                {{- end -}}
52                {{- range . -}}
53                {{- if eq .Running (index .Releases 0).Tag -}}
54                <div class="project card">
55                    <h3><a href="{{ .URL }}">{{ .Name }}</a>   <span class="delete"><a href="/new?action=delete&url={{ .URL }}">Delete?</a></span></h3>
56                    <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>
57                </div>
58                {{- end -}}
59                {{- end -}}
60            </div>
61            <div class="release_notes">
62                <h2>Release notes</h2>
63                {{- range . -}}
64                <div id="{{ (index .Releases 0).ID }}" class="release_note card">
65                    <h3>{{ .Name }}: release notes for <a href="{{ (index .Releases 0).URL }}">{{ (index .Releases 0).Tag }}</a> <span class="close"><a href="#">✖</a></span></h3>
66                    {{- if eq .Forge "github" "gitea" "forgejo" -}}
67                    {{- (index .Releases 0).Content -}}
68                    {{- else -}}
69                    <pre>
70                    {{- (index .Releases 0).Content -}}
71                    </pre>
72                    {{- end -}}
73                    <p><a class="return_to_project" href="#{{ .ID }}">Back to project</a></p>
74                </div>
75                {{- end -}}
76            </div>
77        </div>
78    </body>
79</html>