"use strict"; // pid aus dem Pfad /e/. const pid = location.pathname.split("/")[2] || ""; document.getElementById("reply-form").addEventListener("submit", async (e) => { e.preventDefault(); const fd = new FormData(e.target); fd.append("reply_to", pid); const res = await api.post("/entry/create", fd); if (res.ok) { e.target.reset(); document.getElementById("reply-msg").textContent = ""; load(); } else { document.getElementById("reply-msg").textContent = res.data.error || "Antwort fehlgeschlagen."; } }); async function load() { const data = await api.get(`/entry/${pid}/thread`); const focus = document.getElementById("focus"); if (data.error) { focus.textContent = "Beitrag nicht gefunden"; return; } // Ahnenkette (Root zuerst), dann der fokussierte Beitrag. const ancestors = document.getElementById("ancestors"); ancestors.innerHTML = ""; data.ancestors.forEach((a) => ancestors.appendChild(renderEntry(a))); focus.innerHTML = ""; focus.appendChild(renderEntry(data.entry)); // Reply-Box nur eingeloggt zeigen. const h = await api.get("/auth/headerbar"); document.getElementById("reply-box").hidden = !h.loggedin; // Direkte Antworten. const replies = document.getElementById("replies"); replies.innerHTML = ""; if (!data.replies.length) { const p = document.createElement("p"); p.className = "muted"; p.textContent = "Noch keine Antworten."; replies.appendChild(p); } else { data.replies.forEach((e) => replies.appendChild(renderEntry(e))); } } load();