const form = document.querySelector("#setup-form"); const message = document.querySelector("#message"); function showError(text) { message.textContent = text; message.className = "auth-message error"; } form.addEventListener("submit", async (event) => { event.preventDefault(); const submitButton = form.querySelector("button[type=submit]"); submitButton.disabled = true; message.textContent = ""; try { const response = await fetch("/api/auth/bootstrap", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify(Object.fromEntries(new FormData(form))), }); const body = await response.json(); if (!response.ok) { showError( { bootstrap_used: "The administrator account already exists.", invalid_setup_token: "That setup token is incorrect.", bootstrap_unavailable: "Setup is not available in this deployment.", }[body.code] || body.error || "Could not create the administrator.", ); return; } location.assign("/app"); } catch { showError("Could not reach the server. Check your connection and try again."); } finally { submitButton.disabled = false; } });