munin/templates/audit.html

95 lines
3.5 KiB
HTML

{{template "kopf" .}}
<div class="seitenkopf">
<div class="seitenkopf-titel">
{{/* Das Protokoll über alle Projekte sieht nur der Plattform-Admin — für ihn
gibt es einen eigenen Abschnitt auf seiner Hilfeseite. */}}
<h1>Protokoll {{if .Data.Global}}{{template "hilfelink" "plattform-admin#protokoll-ueber-alle-projekte"}}{{else}}{{template "hilfelink" "zugaenge#protokoll"}}{{end}}</h1>
<span class="hilfe">
Die jüngsten {{len .Data.Events}} Vorgänge{{if .Data.Gefiltert}} zum Filter{{end}}, neueste zuerst (höchstens 200).
{{if .Data.Global}}Über alle Projekte hinweg.{{end}}
Einträge werden nach 90 Tagen automatisch entfernt.
</span>
</div>
</div>
{{/* Filter: Vorgang, Zugang, Zeitraum (und im Protokoll über alle
Projekte das Projekt). Ein GET-Formular, damit sich eine gefilterte
Ansicht als Adresse weitergeben lässt. */}}
<form method="GET" class="filterleiste">
<label>Vorgang
<select name="vorgang">
<option value="">alle</option>
{{range .Data.Aktionen}}
<option value="{{.Action}}" {{if eq .Action $.Data.Filter.Vorgang}}selected{{end}}>{{.Label}}</option>
{{end}}
</select>
</label>
<label>Wer
<select name="wer">
<option value="">alle</option>
{{range .Data.Zugaenge}}
<option value="{{.}}" {{if eq . $.Data.Filter.Wer}}selected{{end}}>{{.}}</option>
{{end}}
</select>
</label>
{{if .Data.Global}}
<label>Projekt
<select name="projekt">
<option value="">alle</option>
{{range $id, $name := .Data.ProjectNames}}
<option value="{{$id}}" {{if eq $id $.Data.Filter.Projekt}}selected{{end}}>{{$name}}</option>
{{end}}
</select>
</label>
{{end}}
<label>von <input type="date" name="von" value="{{.Data.Filter.Von}}"></label>
<label>bis <input type="date" name="bis" value="{{.Data.Filter.Bis}}"></label>
<button type="submit" class="zweitrangig">Filtern</button>
{{if .Data.Gefiltert}}<a href="?">Filter aufheben</a>{{end}}
</form>
{{if .Data.Events}}
<div class="tabelle-huelle">
<table class="tabelle">
<thead>
<tr>
<th>Zeitpunkt</th>
{{if .Data.Global}}<th>Projekt</th>{{end}}
<th>Wer</th>
<th>Vorgang</th>
<th>Eintrag</th>
<th>Herkunft</th>
<th>IP</th>
<th>Details</th>
</tr>
</thead>
<tbody>
{{$projekte := .Data.ProjectNames}}{{$global := .Data.Global}}
{{range .Data.Events}}
<tr>
<td>{{datum .Timestamp}}</td>
{{if $global}}<td>{{with index $projekte .ProjectID}}{{.}}{{else}}—{{end}}</td>{{end}}
<td>{{.Actor}}</td>
<td><code>{{.Action}}</code></td>
<td>{{if .EntrySlug}}<code>{{.EntrySlug}}</code>{{else}}—{{end}}</td>
<td>{{.Source}}</td>
<td>{{if .IP}}{{.IP}}{{else}}—{{end}}</td>
<td>{{if .Detail}}{{.Detail}}{{else}}—{{end}}</td>
</tr>
{{end}}
</tbody>
</table>
</div>
{{else}}
<div class="leer">
{{if .Data.Gefiltert}}
<p>Nichts gefunden für diesen Filter.</p>
<p><a href="?">Filter aufheben</a></p>
{{else}}
<p>Noch nichts protokolliert.</p>
{{end}}
</div>
{{end}}
{{template "fuss" .}}