Umbau-Projekt (SSR und Rest)

This commit is contained in:
2026-09-03 22:20:55 +02:00
parent 13363cb568
commit c66df283d1
37 changed files with 3719 additions and 344 deletions
+8 -7
View File
@@ -16,7 +16,8 @@ async function refreshHeader() {
const user = encodeURIComponent(me.username);
bar.innerHTML = `<a class="button" href="/u/${user}">mein Profil</a> <button id="logout-btn">Logout</button>`;
document.getElementById("logout-btn").addEventListener("click", async () => {
await api.get("/auth/logout");
// POST statt GET: als GET wäre Logout per fremdem Link auslösbar (CSRF).
await api.post("/auth/logout", new FormData());
await refreshHeader();
});
} else {
@@ -51,7 +52,7 @@ loginForm.addEventListener("submit", async (e) => {
if (res.ok) {
await refreshHeader();
} else {
authMsg.textContent = res.data.error || "Login fehlgeschlagen.";
authMsg.textContent = errMsg(res.data, "Login fehlgeschlagen.");
}
});
@@ -60,9 +61,8 @@ registerForm.addEventListener("submit", async (e) => {
const data = new FormData(e.target);
const res = await api.post("/auth/newuser", data);
if (!res.ok) {
// newuser liefert eine Fehlerliste ({"errors": [...]}).
const errors = res.data.errors || [res.data.error || "Registrierung fehlgeschlagen."];
authMsg.textContent = errors.join(" ");
// newuser meldet alle Feldfehler auf einmal (error.fields).
authMsg.textContent = errMsg(res.data, "Registrierung fehlgeschlagen.");
return;
}
// Direkt mit denselben Daten einloggen, damit der Nutzer gleich drin ist.
@@ -78,7 +78,8 @@ registerForm.addEventListener("submit", async (e) => {
const feed = createFeed(
document.getElementById("feed"),
document.getElementById("sentinel"),
(page) => `/entry/feed/${page}`
(page) => `/entry/feed/${page}`,
{ adEvery: 5 }
);
// --- Neuer Beitrag ---
@@ -92,7 +93,7 @@ document.getElementById("entry-form").addEventListener("submit", async (e) => {
e.target.reset();
feed.reset();
} else {
msg.textContent = res.data.error || "Beitrag fehlgeschlagen.";
msg.textContent = errMsg(res.data, "Beitrag fehlgeschlagen.");
}
});