100 lines
4.7 KiB
HTML
100 lines
4.7 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="de">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||
<title>Teams verwalten – Wiki</title>
|
||
<link rel="stylesheet" href="/static/style.css">
|
||
</head>
|
||
<body>
|
||
<div class="layout">
|
||
<main class="content teams-admin-page">
|
||
<h1>Teams verwalten</h1>
|
||
<p class="audit-intro">Teams anlegen, umbenennen, Zugriffskeys neu erzeugen und löschen — die Änderungen
|
||
landen sofort in <code>teams.yaml</code> und wirken ohne Serverneustart.</p>
|
||
|
||
{{if .Error}}
|
||
<div class="error">{{.Error}}</div>
|
||
{{end}}
|
||
|
||
{{if .Notice}}
|
||
<div class="notice">{{.Notice}}</div>
|
||
{{end}}
|
||
|
||
{{if .NewKey}}
|
||
<div class="notice new-key-box">
|
||
Zugriffskey für <strong>{{.NewKeyTeamID}}</strong> (wird nur jetzt angezeigt, danach nicht mehr
|
||
abrufbar — am besten gleich kopieren):
|
||
<code class="new-key">{{.NewKey}}</code>
|
||
</div>
|
||
{{end}}
|
||
|
||
{{/* .CurrentTeam ist gesetzt, wenn der Admin bereits per "Öffnen" in ein Team
|
||
gewechselt hat — dann ein direkter Weg zurück zum Wiki dieses Teams, ohne
|
||
erst wieder in der Tabelle danach suchen zu müssen. */}}
|
||
{{if .CurrentTeam}}
|
||
<div class="notice current-team-box">
|
||
Aktives Team: <strong>{{.CurrentTeam.Name}}</strong>
|
||
<a href="/">Zurück zu {{.CurrentTeam.Name}} →</a>
|
||
</div>
|
||
{{end}}
|
||
|
||
<div class="audit-table-wrap">
|
||
<table class="audit-table teams-admin-table">
|
||
<thead>
|
||
<tr>
|
||
<th>ID</th>
|
||
<th>Name</th>
|
||
<th>Aktionen</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{{$current := .CurrentTeam}}
|
||
{{range .Teams}}
|
||
<tr>
|
||
<td>{{.ID}}</td>
|
||
<td>
|
||
<form method="POST" action="/admin/teams/rename" class="inline-form">
|
||
<input type="hidden" name="id" value="{{.ID}}">
|
||
<input type="text" name="name" value="{{.Name}}" required>
|
||
<button type="submit">Umbenennen</button>
|
||
</form>
|
||
</td>
|
||
<td class="teams-admin-actions">
|
||
{{if and $current (eq $current.ID .ID)}}
|
||
<span class="active-badge">Aktiv</span>
|
||
{{else}}
|
||
<form method="POST" action="/switch-team" class="inline-form">
|
||
<input type="hidden" name="team" value="{{.ID}}">
|
||
<button type="submit">Öffnen</button>
|
||
</form>
|
||
{{end}}
|
||
<form method="POST" action="/admin/teams/regenerate-key" class="inline-form">
|
||
<input type="hidden" name="id" value="{{.ID}}">
|
||
<button type="submit" onclick="return confirm('Neuen Zugriffskey für {{.ID}} erzeugen? Der alte Key wird sofort ungültig.')">Key neu erzeugen</button>
|
||
</form>
|
||
<form method="POST" action="/admin/teams/delete" class="inline-form">
|
||
<input type="hidden" name="id" value="{{.ID}}">
|
||
<button type="submit" class="danger" onclick="return confirm('Team {{.ID}} wirklich löschen? Die Markdown-Dateien bleiben erhalten, der Zugriff aber nicht.')">Löschen</button>
|
||
</form>
|
||
</td>
|
||
</tr>
|
||
{{end}}
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
|
||
<h2>Neues Team anlegen</h2>
|
||
<form method="POST" action="/admin/teams/create" class="teams-admin-create-form">
|
||
<label for="id">Team-ID</label>
|
||
<input type="text" id="id" name="id" placeholder="z.B. gamma" pattern="[a-z0-9_-]+" required>
|
||
|
||
<label for="name">Anzeigename</label>
|
||
<input type="text" id="name" name="name" placeholder="z.B. Team Gamma">
|
||
|
||
<button type="submit">Team anlegen</button>
|
||
</form>
|
||
</main>
|
||
</div>
|
||
</body>
|
||
</html>
|