munin/templates/edit.html

98 lines
5.1 KiB
HTML

{{template "kopf" .}}
<div class="seitenkopf">
<div class="seitenkopf-titel">
<h1>{{if .Data.IsNew}}Neuer Eintrag{{else}}Eintrag bearbeiten{{end}}</h1>
{{if not .Data.IsNew}}<span class="hilfe"><code>{{.Data.Entry.Slug}}</code> · Fassung {{.Data.Entry.Version}}</span>{{end}}
</div>
</div>
<div class="karte">
{{/* data-ungespeichert: Rückfrage beim Verlassen mit ungespeicherten
Änderungen (static/ungespeichert.js). data-kuerzel-speichern:
Strg+Enter speichert (static/tastenkuerzel.js). */}}
<form method="POST" class="formular"
action="{{if .Data.IsNew}}/p/{{.Project.Slug}}/save{{else}}/p/{{.Project.Slug}}/e/{{.Data.Entry.Slug}}/save{{end}}"
data-preview-url="/p/{{.Project.Slug}}/preview"
data-ungespeichert data-kuerzel-speichern>
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
{{/* Die Fassung wandert unverändert durchs Formular und zurück. Hat jemand
anderes den Eintrag zwischenzeitlich geändert, erkennt der Server das
und meldet einen Konflikt, statt die fremde Änderung zu überschreiben. */}}
<input type="hidden" name="version" value="{{.Data.Entry.Version}}">
<div class="feld lang">
<label for="title">Titel</label>
{{if .Data.IsNew}}
{{/* Beim Tippen: Gibt es schon einen ähnlichen Eintrag? Dieselbe
Prüfung wie bei "remember" über MCP, hier nur als Hinweis
(static/aehnlich.js). */}}
<input type="text" id="title" name="title" value="{{.Data.Entry.Title}}" required autofocus
data-aehnlich-url="/p/{{.Project.Slug}}/entries/similar" autocomplete="off">
<div class="aehnlich-hinweis" data-aehnlich-liste hidden aria-live="polite">
<span class="hilfe">Gibt es schon? Lieber den vorhandenen Eintrag fortschreiben, statt einen zweiten daneben zu legen:</span>
<ul></ul>
</div>
{{else}}
<input type="text" id="title" name="title" value="{{.Data.Entry.Title}}" required autofocus>
{{end}}
</div>
{{if .Data.IsNew}}
<div class="feld kurz">
<label for="slug">Bezeichner</label>
<span class="hilfe">Leer lassen, um ihn aus dem Titel abzuleiten.</span>
<input type="text" id="slug" name="slug" pattern="[a-z0-9][a-z0-9_-]*"
value="{{.Data.Entry.Slug}}" placeholder="wird-abgeleitet" autocomplete="off">
</div>
{{else}}
<input type="hidden" name="slug" value="{{.Data.Entry.Slug}}">
{{end}}
<div class="feld mittel">
<label for="tags">Schlagworte</label>
<span class="hilfe">Durch Komma getrennt.</span>
<input type="text" id="tags" name="tags" value="{{.Data.TagsIn}}" placeholder="ops, deployment">
</div>
<div class="feld" data-editor>
<label for="content">Inhalt {{template "hilfelink" "weboberflaeche#markdown-im-inhalt"}}</label>
<span class="hilfe">Markdown. <code>[[bezeichner]]</code> verweist auf einen anderen Eintrag.</span>
{{/* Ohne JavaScript bleibt einfach der erste Reiter aktiv — das
Formular funktioniert dann genau wie vorher, nur ohne
Vorschau-Knopf-Wirkung. Kein <noscript>-Sonderfall nötig. */}}
<div class="editor-reiter" role="tablist">
<button type="button" class="editor-reiter-knopf aktiv"
data-editor-tab="schreiben" role="tab" aria-selected="true">Schreiben</button>
<button type="button" class="editor-reiter-knopf"
data-editor-tab="vorschau" role="tab" aria-selected="false">Vorschau</button>
</div>
<textarea id="content" name="content" rows="24" spellcheck="true"
data-editor-panel="schreiben"
data-suggest-url="/p/{{.Project.Slug}}/entries/suggest">{{.Data.Entry.Content}}</textarea>
{{/* Erscheint nur, während "[[" getippt und noch nicht mit "]]"
geschlossen wurde — siehe static/autocomplete.js. */}}
<ul class="autovervollstaendigung" data-autovervollstaendigung hidden></ul>
<div class="eintrag-text vorschau-flaeche" data-editor-panel="vorschau" hidden></div>
</div>
<div class="feld ankreuz">
<input type="checkbox" id="curated" name="curated" value="1" {{if .Data.Entry.Curated}}checked{{end}}>
<label for="curated">
Kuratiert
<span class="hilfe">Geprüftes Wissen, keine Beobachtung eines Agenten.</span>
</label>
</div>
<div class="formular-aktionen">
<button type="submit" title="Speichern (Strg+Enter)" aria-keyshortcuts="Control+Enter Meta+Enter">Speichern</button>
<a class="knopf zweitrangig"
href="{{if .Data.IsNew}}/p/{{.Project.Slug}}/{{else}}/p/{{.Project.Slug}}/e/{{.Data.Entry.Slug}}{{end}}">Abbrechen</a>
</div>
</form>
</div>
{{template "fuss" .}}