stammtisch-hersbruck/backend/pb_hooks/views/invite.html
Daniel Michelberger 279796111c wip: Der abgebrochene Kurbeler-Umbau, wie er hier liegengeblieben ist
Kein fertiger Stand, sondern ein Zwischenstand: Hier wurde im September 2026
angefangen, die App auf „Kurbeler" umzubenennen — Wortmarke, Icons, brand.ts,
Benachrichtigungen, das Benutzerverzeichnis. Weitergegangen ist es dann im
eigenen Repo `~/Dokumente/Projekte/kurbeler`, das die vollständige Historie
dieses Repos mitgenommen hat.

Committet wird das hier nicht, weil es gebraucht würde, sondern damit es nicht
als Haufen unversionierter Dateien im Arbeitsverzeichnis verrottet. Wer in
zwei Jahren nachsieht, findet so eine Geschichte statt eines Rätsels — und das
Stammtisch-Wappen, das nur hier je existiert hat.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LTw6xVYgjMy9AQtfs1Gdyu
2026-09-11 15:42:33 +02:00

116 lines
5.6 KiB
HTML

<!doctype html>
<!--
Einladungsmail für ein neues Konto.
Gerendert wird sie mit $template.loadFiles(...).render(data) — Go's
html/template. Die Platzhalter stehen deshalb in {{ }} und werden dabei
escaped; {{.Team}} kommt aus einer Datenbank und darf hier kein Markup
einschleusen.
Warum Tabellen und Inline-Styles? Weil Mailprogramme kein CSS aus dem
<head> lesen, kein Flexbox können und Outlook bis heute mit Word rendert.
Was hier steht, ist die Form, die überall ankommt — nicht die, die man
schreiben würde.
Erwartete Daten:
.App Name der Anwendung
.Team Team, das einlädt
.Name Name des Eingeladenen, wie er im Kader steht
.Link Vollständige URL auf /invite/{token}
.Expires Klartext wie "30. September 2026" — leer heißt: läuft nicht ab
-->
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Einladung zu {{.Team}}</title>
</head>
<body style="margin:0; padding:0; background:#f4f4f5; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;">
<!-- Vorschautext: steht in der Liste neben dem Betreff und sonst nirgends. -->
<div style="display:none; max-height:0; overflow:hidden; opacity:0;">
{{.Team}} lädt dich zu {{.App}} ein. Passwort setzt du selbst.
</div>
<table role="presentation" width="100%" cellpadding="0" cellspacing="0" style="background:#f4f4f5; padding:32px 16px;">
<tr>
<td align="center">
<table role="presentation" width="100%" cellpadding="0" cellspacing="0"
style="max-width:520px; background:#ffffff; border-radius:12px; overflow:hidden;">
<tr>
<td style="padding:32px 32px 8px 32px;">
<p style="margin:0 0 4px 0; font-size:13px; letter-spacing:0.08em; text-transform:uppercase; color:#a1a1aa;">
{{.App}}
</p>
<h1 style="margin:0; font-size:24px; line-height:1.3; color:#18181b;">
{{.Team}} lädt dich ein
</h1>
</td>
</tr>
<tr>
<td style="padding:16px 32px 0 32px; font-size:16px; line-height:1.6; color:#3f3f46;">
<p style="margin:0 0 16px 0;">Hallo {{.Name}},</p>
<p style="margin:0 0 16px 0;">
du stehst im Kader von <strong>{{.Team}}</strong>. Mit einem eigenen
Konto siehst du Termine, trägst dich zu Events ein und findest deine
Zeiten wieder.
</p>
<p style="margin:0 0 24px 0;">
Über den Knopf legst du das Konto selbst an — <strong>dein Passwort
wählst du dabei selbst</strong>, niemand sonst kennt es.
</p>
</td>
</tr>
<tr>
<td style="padding:0 32px;">
<!-- Der Knopf als Tabelle: Ein <a> mit Padding bricht in Outlook. -->
<table role="presentation" cellpadding="0" cellspacing="0">
<tr>
<td style="border-radius:8px; background:#eab308;">
<a href="{{.Link}}"
style="display:inline-block; padding:14px 28px; font-size:16px; font-weight:600; color:#18181b; text-decoration:none;">
Konto anlegen
</a>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td style="padding:24px 32px 0 32px; font-size:14px; line-height:1.6; color:#71717a;">
<p style="margin:0 0 8px 0;">
Falls der Knopf nicht geht, diese Adresse in den Browser kopieren:
</p>
<p style="margin:0; word-break:break-all;">
<a href="{{.Link}}" style="color:#3f3f46;">{{.Link}}</a>
</p>
</td>
</tr>
{{if .Expires}}
<tr>
<td style="padding:16px 32px 0 32px; font-size:14px; line-height:1.6; color:#71717a;">
Die Einladung gilt bis zum {{.Expires}}.
</td>
</tr>
{{end}}
<tr>
<td style="padding:24px 32px 32px 32px;">
<hr style="border:0; border-top:1px solid #e4e4e7; margin:0 0 16px 0;">
<p style="margin:0; font-size:13px; line-height:1.6; color:#a1a1aa;">
Du erwartest keine Einladung? Dann ignorier diese Mail einfach —
ohne den Link entsteht kein Konto.
</p>
</td>
</tr>
</table>
<p style="margin:16px 0 0 0; font-size:12px; color:#a1a1aa;">{{.App}}</p>
</td>
</tr>
</table>
</body>
</html>