SSR: Repost ohne JS, return_to in Formularen, Werbebanner entfernt

Letzter vollständiger SSR-Stand vor dem Rückbau auf reine SPA.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TiXsPUqw7oeomZ8wZrQW5q
This commit is contained in:
irrlicht
2026-09-26 21:23:09 +02:00
co-authored by Claude Opus 5.5
parent c66df283d1
commit eccddcebe6
9 changed files with 194 additions and 45 deletions
+8
View File
@@ -51,6 +51,14 @@
<button class="ghost{{if eq .Selected "right"}} selected{{end}}"
name="mode" value="right">Rechts</button>
</form>
{{/* Repost hebt den Beitrag im Feed wieder nach oben. Der Cooldown
sitzt am Beitrag (global) und wächst pro Repost; ist er aktiv,
ist der Knopf gesperrt und die Restzeit steht daneben. */}}
<form method="post" action="/entry/{{.PID}}/bump">
<input type="hidden" name="return_to" value="{{.ReturnTo}}#e{{.PID}}">
<button class="bump" type="submit"{{if .BumpLocked}} disabled{{end}}>Repost ({{.BumpCount}})</button>
{{if .BumpLocked}}<span class="muted"> · in {{.BumpWaitHours}}h</span>{{end}}
</form>
{{else}}
{{/* Ohne Anmeldung nur der Stand -- ein Formular hier würde
ausschließlich 401 liefern. */}}
+3
View File
@@ -6,6 +6,9 @@
statt der Datei -- ohne JavaScript gibt es keinen zweiten Versuch. */}}
<form method="post" action="/entry/create" enctype="multipart/form-data">
<input type="hidden" name="page" value="{{.Page}}">
{{/* return_to überlebt einen abgelehnten Post: sonst rendert failCompose
den Feed mit Interaktions-Knöpfen, die auf "/" statt "/feed" zeigen. */}}
<input type="hidden" name="return_to" value="{{.ReturnTo}}">
{{with $.Err}}<p class="msg">{{.Msg}}</p>{{end}}
<label for="content">Neuer Beitrag</label>
<textarea id="content" name="content" rows="4" maxlength="1000"
+3
View File
@@ -14,6 +14,9 @@
<section id="compose">
<form method="post" action="/entry/create" enctype="multipart/form-data">
<input type="hidden" name="reply_to" value="{{.Entry.PID}}">
{{/* return_to überlebt eine abgelehnte Antwort: sonst zeigen die neu
gerenderten Interaktions-Knöpfe auf "/" statt auf den Thread. */}}
<input type="hidden" name="return_to" value="{{.ReturnTo}}">
{{with $.Err}}<p class="msg">{{.Msg}}</p>{{end}}
<label for="content">Antworten</label>
<textarea id="content" name="content" rows="4" maxlength="1000"