package webui import ( "github.com/pogo-vcs/pogo/server/webui/components" "github.com/pogo-vcs/pogo/server/webui/icons" ) script loginScript() { document.getElementById("loginForm").addEventListener("submit", async (e) => { e.preventDefault(); const token = document.getElementById("token").value; const errorDiv = document.getElementById("errorMessage"); try { const formData = new FormData(); formData.append("token", token); const response = await fetch("/api/login", { method: "POST", body: formData, credentials: "same-origin" // Include cookies in the request }); if (response.ok) { // Server sets the httpOnly cookie, just redirect window.location.href = "/"; } else { const text = await response.text(); errorDiv.textContent = text || "Login failed"; errorDiv.classList.remove("hidden"); } } catch (error) { errorDiv.textContent = "Network error. Please try again."; errorDiv.classList.remove("hidden"); } }); document.getElementById("toggleTokenVisibility").addEventListener("click", (e) => { e.preventDefault(); const inputEl = document.getElementById("token"); inputEl.type = inputEl.type === "password" ? "text" : "password"; }); } templ Login() { @layout("Login - Pogo") { @components.Header(GetUser(ctx)) @components.Main() {

Login

} @loginScript() } }