139 lines
6.2 KiB
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" .}}
|