munin/templates/workspace-edit.html

139 lines
6.2 KiB
HTML

{{template "kopf" .}}
<div class="seitenkopf">
<div class="seitenkopf-titel">
<h1>{{.Data.Workspace.Name}}</h1>
<span class="hilfe">Angelegt am {{.Data.Workspace.CreatedAt}} · {{.Data.Projects}} Projekt(e)</span>
</div>
<div class="seitenkopf-aktionen">
<a class="knopf zweitrangig" href="/admin/workspaces">Zur Übersicht</a>
</div>
</div>
<div class="karte">
<form method="POST" action="/admin/workspaces/{{.Data.Workspace.ID}}/edit" class="formular">
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<div class="feld mittel">
<label for="name">Name</label>
<input type="text" id="name" name="name" value="{{.Data.Workspace.Name}}" required autofocus>
</div>
<div class="formular-aktionen">
<button type="submit">Speichern</button>
<a class="knopf zweitrangig" href="/admin/workspaces">Abbrechen</a>
</div>
</form>
</div>
{{/* Workspace-Admins (AUSBAUSTUFEN.md 4.8): verwalten in diesem Workspace
Projekte und Zugänge, nur über die Weboberfläche. Anlegen und zurückziehen
kann sie nur der Plattform-Admin — deshalb stehen sie hier und nicht auf
einer Seite, die der Workspace-Admin selbst erreicht. */}}
<section class="abschnitt">
<h2>Workspace-Admins {{template "hilfelink" "plattform-admin#workspace-admins"}}</h2>
<span class="hilfe">Ein Workspace-Admin legt in diesem Workspace Projekte an, bearbeitet und
löscht sie und verwaltet deren Zugänge. Er meldet sich mit seinem Token in der
Weboberfläche an — für MCP taugt das Token nicht. Andere Workspaces, das
Schreibbudget und der Export bleiben beim Plattform-Admin.</span>
{{if .Data.NewToken}}
<div class="karte key-anzeige">
<strong>Token für „{{.Data.NewTokenName}}“</strong>
<code class="key-wert">{{.Data.NewToken}}</code>
<span class="hilfe">Wird nur jetzt angezeigt — gespeichert ist nur eine Prüfsumme.
Geht das Token verloren, muss ein neues erzeugt werden.</span>
</div>
{{end}}
{{if .Data.Ungenutzt}}
<div class="meldung fehler">
{{if eq .Data.Ungenutzt 1}}Ein aktiver Workspace-Admin wurde{{else}}{{.Data.Ungenutzt}} aktive Workspace-Admins wurden{{end}}
seit über 90 Tagen nicht benutzt. Jeder davon ist ein offener Zugang zum ganzen
Workspace. Ist die Person nicht mehr zuständig, am besten zurückziehen.
</div>
{{end}}
{{if .Data.Admins}}
<div class="tabelle-huelle">
<table class="tabelle">
<thead>
<tr>
<th>Name</th>
<th>Angelegt</th>
<th>Zuletzt benutzt</th>
<th>Status</th>
<th class="schmal rechts"></th>
</tr>
</thead>
<tbody>
{{$csrf := .CSRFToken}}{{$id := .Data.Workspace.ID}}{{$jetzt := .Data.Jetzt}}
{{range .Data.Admins}}
<tr {{if .Revoked}}class="gedaempft"{{end}}>
<td>{{.Name}}</td>
<td>{{datum .CreatedAt}}</td>
<td>{{if .LastUsedAt.IsZero}}<span class="hilfe">nie</span>{{else}}{{datum .LastUsedAt}}{{end}}</td>
<td>
{{if .Revoked}}zurückgezogen{{else}}aktiv{{end}}
{{if .Unused $jetzt}}<span class="marke warnung" title="Seit über 90 Tagen nicht benutzt">ungenutzt</span>{{end}}
</td>
<td class="schmal rechts">
{{if not .Revoked}}
<form method="POST" action="/admin/workspaces/{{$id}}/admins/revoke" class="reihe"
data-confirm="Zugang „{{.Name}}“ zurückziehen? Eine laufende Sitzung endet sofort.">
<input type="hidden" name="csrf_token" value="{{$csrf}}">
<input type="hidden" name="id" value="{{.ID}}">
<button type="submit" class="warnung">Zurückziehen</button>
</form>
{{end}}
</td>
</tr>
{{end}}
</tbody>
</table>
</div>
{{end}}
<div class="karte">
<form method="POST" action="/admin/workspaces/{{.Data.Workspace.ID}}/admins/create" class="formular">
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<div class="feld mittel">
<label for="admin-name">Name</label>
<span class="hilfe">Wer den Zugang bekommt — so steht es später im Protokoll.</span>
<input type="text" id="admin-name" name="name" required placeholder="z.B. Erika Muster">
</div>
<div class="formular-aktionen">
<button type="submit">Workspace-Admin anlegen</button>
</div>
</form>
</div>
</section>
<section class="abschnitt">
<h2>Gefahrenzone</h2>
<span class="hilfe">Das Löschen entfernt alle {{.Data.Projects}} Projekte dieses Workspace samt
ihrer Einträge, Zugänge und Workspace-Admins unwiederbringlich — die Workspace-Datei wird von der Platte
entfernt. Der Markdown-Export bleibt erhalten, sofern einer eingerichtet ist.</span>
<div class="karte gefahrenzone">
<form method="POST" action="/admin/workspaces/delete" class="formular"
data-confirm="Workspace wirklich löschen? Alle Projekte, Einträge und Zugänge gehen unwiederbringlich verloren.">
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
<input type="hidden" name="id" value="{{.Data.Workspace.ID}}">
<div class="feld kurz">
<label for="confirm">Name zur Bestätigung</label>
<span class="hilfe">Zum Löschen <code>{{.Data.Workspace.Name}}</code> eintippen.</span>
<input type="text" id="confirm" name="confirm" autocomplete="off">
</div>
<div class="formular-aktionen">
<button type="submit" class="warnung">Workspace löschen</button>
</div>
</form>
</div>
</section>
{{template "fuss" .}}