Files
volumen/internal/web/templates/update.html
T
petrbalvin f8ed33df83
Test / test (push) Successful in 7m5s
Release / gates (push) Successful in 7m28s
Release / build (amd64, freebsd) (push) Successful in 2m52s
Release / build (amd64, linux) (push) Successful in 2m46s
Release / build (arm64, freebsd) (push) Successful in 2m22s
Release / build (arm64, linux) (push) Successful in 2m38s
Release / build (loong64, linux) (push) Successful in 2m7s
Release / build (riscv64, linux) (push) Successful in 2m17s
Release / release (push) Successful in 1m0s
Initial commit
Assisted-by: GLM 5.3
2026-09-29 10:03:32 +02:00

35 lines
1.2 KiB
HTML

{{define "title"}}{{ tr "Updated to" }} {{ .Target }} · {{ tr "Volumen admin" }}{{end}}
{{define "content"}}
<div class="empty narrow">
<svg aria-hidden="true"><use href="/admin/assets/graphis.svg#refresh"></use></svg>
<h1>{{ tr "Updated to" }} {{ .Target }}</h1>
<p class="empty__note" id="update-status" role="status">{{ tr "The server is restarting. This page will reload automatically." }}</p>
<div class="spinner" aria-hidden="true"></div>
</div>
<script nonce="{{ .CSPNonce }}">
/* Wait for the engine to come back by polling its own health endpoint,
never by a guessed delay. */
(() => {
const status = document.getElementById("update-status");
let attempts = 0;
const timer = setInterval(async () => {
attempts += 1;
try {
const response = await fetch("/healthz", { cache: "no-store" });
if (response.ok) {
clearInterval(timer);
status.textContent = window.__("update.reload");
setTimeout(() => { window.location.href = "/admin/"; }, 500);
return;
}
} catch (error) { /* still down */ }
if (attempts > 60) {
clearInterval(timer);
status.textContent = window.__("update.gaveup");
}
}, 3000);
})();
</script>
{{end}}