blob: a4ddf40aa29af20576c2897c872d69d59bbc0964 [file] [log] [blame]
giof6ad2982024-08-23 17:42:49 +04001{{ define "header" }}
2<h1>Cluster - {{ .Cluster.Name }}</h1>
3{{ end }}
4
5{{ define "content" }}
gio8f290322024-09-21 15:37:45 +04006{{ $c := .Cluster }}
7<form action="/clusters/{{ $c.Name }}/remove" method="POST">
giof6ad2982024-08-23 17:42:49 +04008 <button type="submit" name="remove-cluster">remove cluster</button>
9</form>
gio8f290322024-09-21 15:37:45 +040010<form action="/clusters/{{ $c.Name }}/servers" method="POST" autocomplete="off">
giof6ad2982024-08-23 17:42:49 +040011 <details class="dropdown">
gio1e725772024-10-05 10:08:44 +040012 <summary id="type">{{- if $c.Controllers -}}worker{{- else -}}controller{{- end -}}</summary>
giof6ad2982024-08-23 17:42:49 +040013 <ul>
gio1e725772024-10-05 10:08:44 +040014 {{- if $c.Controllers -}}
giof6ad2982024-08-23 17:42:49 +040015 <li>
16 <label>
gio1e725772024-10-05 10:08:44 +040017 <input type="radio" name="type" value="worker" oninput="serverTypeSelected(this)" checked />
giof6ad2982024-08-23 17:42:49 +040018 worker
19 </label>
20 </li>
gio1e725772024-10-05 10:08:44 +040021 {{- end -}}
giof6ad2982024-08-23 17:42:49 +040022 <li>
23 <label>
gio1e725772024-10-05 10:08:44 +040024 <input type="radio" name="type" value="controller" oninput="serverTypeSelected(this)" {{- if not $c.Controllers -}}checked{{- end -}}/>
giof6ad2982024-08-23 17:42:49 +040025 controller
26 </label>
27 </li>
28 </ul>
29 </details>
30 <input type="text" name="ip" placeholder="ip" />
31 <input type="text" name="port" placeholder="22 (optional)" />
32 <input type="text" name="user" placeholder="user" />
33 <input type="password" name="password" placeholder="password" />
34 <button type="submit" name="add-server">add server</button>
35</form>
gio8f290322024-09-21 15:37:45 +040036{{- if $c.StorageEnabled }}
37Supports persistent storage<br/>
38{{- else }}
39<form action="/clusters/{{ $c.Name }}/setup-storage" method="POST">
40 <button type="submit" name="remove-cluster">setup persistent storage</button>
41</form>
42{{- end }}
giof6ad2982024-08-23 17:42:49 +040043<table class="striped">
44 <thead>
45 <tr>
46 <th scope="col">type</th>
47 <th scope="col">hostname</th>
48 <th scope="col">ip</th>
49 <th scope="col">remove</th>
50 </tr>
51 </thead>
52 <tbody>
gio8f290322024-09-21 15:37:45 +040053 {{ range $s := $c.Controllers }}
giof6ad2982024-08-23 17:42:49 +040054 <tr>
55 <th>controller</th>
56 <th scope="row">{{ $s.Name }}</th>
57 <td>{{ $s.IP }} </td>
58 <td>
59 <form action="/clusters/{{ $c.Name }}/servers/{{ $s.Name }}/remove" method="POST">
60 <button type="submit">remove</button>
61 </form>
62 </td>
63 </tr>
64 {{ end }}
gio8f290322024-09-21 15:37:45 +040065 {{ range $s := $c.Workers }}
giof6ad2982024-08-23 17:42:49 +040066 <tr>
67 <th>worker</th>
68 <th scope="row">{{ $s.Name }}</th>
69 <td>{{ $s.IP }} </td>
70 <td>
71 <form action="/clusters/{{ $c.Name }}/servers/{{ $s.Name }}/remove" method="POST">
72 <button type="submit">remove</button>
73 </form>
74 </td>
75 </tr>
76 {{ end }}
77 </tbody>
78</table>
gio1e725772024-10-05 10:08:44 +040079<script type="text/javascript">
80 function serverTypeSelected(elem) {
81 let summary = elem.closest("details").querySelector("summary");
82 summary.innerHTML = elem.getAttribute("value");
83 summary.parentNode.removeAttribute("open");
84 }
85</script>
giof6ad2982024-08-23 17:42:49 +040086{{ end }}