95 lines
3.5 KiB
HTML
95 lines
3.5 KiB
HTML
{{template "header" .}}
|
|
|
|
<div class="page-header">
|
|
<div class="page-header-title">
|
|
{{/* 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 "helplink" "plattform-admin#protokoll-ueber-alle-projekte"}}{{else}}{{template "helplink" "zugaenge#protokoll"}}{{end}}</h1>
|
|
<span class="help">
|
|
Die jüngsten {{len .Data.Events}} Vorgänge{{if .Data.Filtered}} 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="filter-bar">
|
|
<label>Vorgang
|
|
<select name="vorgang">
|
|
<option value="">alle</option>
|
|
{{range .Data.Actions}}
|
|
<option value="{{.Action}}" {{if eq .Action $.Data.Filter.Event}}selected{{end}}>{{.Label}}</option>
|
|
{{end}}
|
|
</select>
|
|
</label>
|
|
<label>Wer
|
|
<select name="wer">
|
|
<option value="">alle</option>
|
|
{{range .Data.Keys}}
|
|
<option value="{{.}}" {{if eq . $.Data.Filter.Who}}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.Project}}selected{{end}}>{{$name}}</option>
|
|
{{end}}
|
|
</select>
|
|
</label>
|
|
{{end}}
|
|
<label>von <input type="date" name="von" value="{{.Data.Filter.From}}"></label>
|
|
<label>bis <input type="date" name="bis" value="{{.Data.Filter.Until}}"></label>
|
|
<button type="submit" class="secondary">Filtern</button>
|
|
{{if .Data.Filtered}}<a href="?">Filter aufheben</a>{{end}}
|
|
</form>
|
|
|
|
{{if .Data.Events}}
|
|
<div class="table-wrap">
|
|
<table class="styled-table">
|
|
<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>{{datetime .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="empty">
|
|
{{if .Data.Filtered}}
|
|
<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 "footer" .}}
|