refactor: E-Mail-Vorlagen als Liste + eigene Bearbeiten-Seite statt Formular-Stapel
Auf Nutzerfeedback: die erste Version zeigte alle bekannten Vorlagen als
gestapelte Formulare auf einer Seite. Jetzt wie Werkzeugkatalog/
Nutzerverwaltung: eine Liste (GET .../email-vorlagen) mit Klick auf eine
eigene Bearbeiten-Seite je Typ (GET/POST .../email-vorlagen/{typ}) -
skaliert sauber, wenn mit der Zeit weitere Benachrichtigungstypen
dazukommen, statt eine immer länger werdende Formular-Stapel-Seite.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
49
internal/web/templates/email_vorlage_bearbeiten.html
Normal file
49
internal/web/templates/email_vorlage_bearbeiten.html
Normal file
@@ -0,0 +1,49 @@
|
||||
{{define "email-vorlage-bearbeiten"}}<!doctype html>
|
||||
<html lang="de">
|
||||
<head>{{template "head" .}}</head>
|
||||
<body>
|
||||
{{template "nav" .Nav}}
|
||||
<div class="page page-wide">
|
||||
<p><a href="{{.ActionBase}}">← E-Mail-Vorlagen</a></p>
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1>{{.Label}}</h1>
|
||||
<p class="hinweis">
|
||||
Platzhalter in geschweiften Klammern werden beim Versand ersetzt.
|
||||
Verfügbar: {{.Platzhalter}}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
{{if .Error}}<p class="fehler">{{.Error}}</p>{{end}}
|
||||
{{if .Gespeichert}}<p class="hinweis">Gespeichert.</p>{{end}}
|
||||
<div class="form-card">
|
||||
<form method="post" action="{{.ActionBase}}/{{.Typ}}">
|
||||
<fieldset class="form-section">
|
||||
<legend>{{.Label}}{{if .IstUebersteuert}} <span class="hinweis">(eigene Vorlage)</span>{{else if eq .ActionBase "/verwaltung/email-vorlagen"}} <span class="hinweis">(Plattform-Standard, nicht angepasst)</span>{{end}}</legend>
|
||||
<div class="form-grid">
|
||||
<div class="form-full">
|
||||
<label for="betreff">Betreff</label>
|
||||
<input type="text" id="betreff" name="betreff" value="{{.Betreff}}" required>
|
||||
</div>
|
||||
<div class="form-full">
|
||||
<label for="text">Text</label>
|
||||
<textarea id="text" name="text" rows="10" required>{{.Text}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="form-actions">
|
||||
<button type="submit">Speichern</button>
|
||||
</div>
|
||||
</form>
|
||||
{{if and .IstUebersteuert (eq .ActionBase "/verwaltung/email-vorlagen")}}
|
||||
<div class="form-gefahrenzone">
|
||||
<form method="post" action="/verwaltung/email-vorlagen/{{.Typ}}/zuruecksetzen" onsubmit="return confirm('Eigene Vorlage löschen und zum Plattform-Standard zurückkehren?')">
|
||||
<button type="submit" class="entfernen">Auf Plattform-Standard zurücksetzen</button>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
{{end}}
|
||||
@@ -7,46 +7,22 @@
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1>{{.Title}}</h1>
|
||||
<p class="hinweis">
|
||||
Betreff und Text der vom System versendeten E-Mails. Platzhalter
|
||||
in geschweiften Klammern (z. B. <code>{{"{{link}}"}}</code>)
|
||||
werden beim Versand automatisch ersetzt.
|
||||
</p>
|
||||
<p class="hinweis">Betreff und Text der vom System versendeten E-Mails.</p>
|
||||
</div>
|
||||
</div>
|
||||
{{if .Error}}<p class="fehler">{{.Error}}</p>{{end}}
|
||||
{{if .Gespeichert}}<p class="hinweis">Gespeichert.</p>{{end}}
|
||||
{{range .Zeilen}}
|
||||
<div class="form-card">
|
||||
<form method="post" action="{{$.ActionBase}}">
|
||||
<input type="hidden" name="typ" value="{{.Typ}}">
|
||||
<fieldset class="form-section">
|
||||
<legend>{{.Label}}{{if .IstUebersteuert}} <span class="hinweis">(eigene Vorlage)</span>{{else if eq $.ActionBase "/verwaltung/email-vorlagen"}} <span class="hinweis">(Plattform-Standard, nicht angepasst)</span>{{end}}</legend>
|
||||
<p class="hinweis">Verfügbare Platzhalter: {{.Platzhalter}}</p>
|
||||
<div class="form-grid">
|
||||
<div class="form-full">
|
||||
<label for="betreff-{{.Typ}}">Betreff</label>
|
||||
<input type="text" id="betreff-{{.Typ}}" name="betreff" value="{{.Betreff}}" required>
|
||||
</div>
|
||||
<div class="form-full">
|
||||
<label for="text-{{.Typ}}">Text</label>
|
||||
<textarea id="text-{{.Typ}}" name="text" rows="8" required>{{.Text}}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<div class="form-actions">
|
||||
<button type="submit">Speichern</button>
|
||||
</div>
|
||||
</form>
|
||||
{{if and .IstUebersteuert (eq $.ActionBase "/verwaltung/email-vorlagen")}}
|
||||
<div class="form-gefahrenzone">
|
||||
<form method="post" action="/verwaltung/email-vorlagen/zuruecksetzen" onsubmit="return confirm('Eigene Vorlage löschen und zum Plattform-Standard zurückkehren?')">
|
||||
<input type="hidden" name="typ" value="{{.Typ}}">
|
||||
<button type="submit" class="entfernen">Auf Plattform-Standard zurücksetzen</button>
|
||||
</form>
|
||||
</div>
|
||||
{{end}}
|
||||
</div>
|
||||
{{if not .Zeilen}}
|
||||
<p class="hinweis">Es gibt noch keine vom System versendeten E-Mails.</p>
|
||||
{{else}}
|
||||
<ul class="beitraege-liste">
|
||||
{{range .Zeilen}}
|
||||
<li>
|
||||
<a href="{{$.ActionBase}}/{{.Typ}}">
|
||||
<strong>{{.Label}}</strong>
|
||||
{{if .IstUebersteuert}}<span class="status status-published">eigene Vorlage</span>{{else}}<span class="status status-mittel">Plattform-Standard</span>{{end}}
|
||||
</a>
|
||||
</li>
|
||||
{{end}}
|
||||
</ul>
|
||||
{{end}}
|
||||
</div>
|
||||
</body>
|
||||
|
||||
Reference in New Issue
Block a user