"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)); // Eingeloggt? Reply-Box zeigen; eigener, nicht gelöschter Beitrag -> Löschen-Button. const me = await api.get("/user/info"); document.getElementById("reply-box").hidden = !me.uid; if (me.uid === data.entry.uid && !data.entry.deleted) { const btn = document.createElement("button"); btn.textContent = "Löschen"; btn.addEventListener("click", async () => { if (!confirm("Beitrag wirklich löschen?")) return; const res = await api.post(`/entry/${pid}/delete`, new FormData()); if (res.ok) load(); else alert(res.data.error || "Löschen fehlgeschlagen."); }); focus.appendChild(btn); } // 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();