Raw
 1{{define "title"}}{{t "admin.audit.title"}}{{end}}
 2{{define "content"}}{{template "admin-header" .}}<h1>{{t "admin.audit.title"}}</h1>
 3<form method="get" action="/audit">
 4<label for="actor">{{t "admin.audit.actor"}}</label>
 5<input id="actor" class="ident" name="actor" type="search" value="{{.Data.Filter.Actor}}" autocomplete="off" autocapitalize="none" spellcheck="false">
 6<label for="action">{{t "admin.audit.action"}}</label>
 7<select id="action" class="ident" name="action"><option value="">{{t "admin.audit.any"}}</option>{{range .Data.Actions}}<option{{if .Selected}} selected{{end}}>{{.Value}}</option>{{end}}</select>
 8<label for="subject">{{t "admin.audit.subject"}}</label>
 9<input id="subject" class="ident" name="subject" type="search" value="{{.Data.Filter.Subject}}" autocomplete="off" autocapitalize="none" spellcheck="false">
10<label for="address">{{t "admin.audit.address"}}</label>
11<input id="address" class="ident" name="address" type="search" value="{{.Data.Filter.Address}}" autocomplete="off" autocapitalize="none" spellcheck="false">
12<label for="from">{{t "admin.audit.from"}}</label>
13<input id="from" name="from" type="datetime-local" value="{{.Data.Filter.From}}">
14<label for="to">{{t "admin.audit.to"}}</label>
15<input id="to" name="to" type="datetime-local" value="{{.Data.Filter.To}}">
16<div class="actions"><button type="submit">{{t "admin.audit.filter"}}</button></div>
17</form>
18{{if .Data.Rows}}<table>
19<thead><tr><th>{{t "admin.audit.time"}}</th><th>{{t "admin.audit.actor"}}</th><th>{{t "admin.audit.action"}}</th><th>{{t "admin.audit.subject"}}</th><th>{{t "admin.audit.address"}}</th><th>{{t "admin.audit.detail"}}</th></tr></thead>
20<tbody>
21{{range .Data.Rows}}<tr><td>{{.At}}</td><td>{{id .Actor}}</td><td>{{if .Sentence}}{{t .Sentence}}{{else}}{{id .Action}}{{end}}</td><td>{{if .Subject}}{{id .Subject}}{{end}}</td><td>{{if .Address}}{{id .Address}}{{end}}</td><td>{{range .Detail}}{{id .}} {{end}}{{if .More}}<small>+{{.More}} {{t "admin.badges.more"}}</small>{{end}}</td></tr>
22{{end}}</tbody>
23</table>
24{{else if .Data.Filtered}}<p>{{t "admin.audit.no_match"}}</p>
25{{else}}<p>{{t "admin.audit.empty"}}</p>
26{{end}}{{if or .Data.Newer .Data.Older}}<div class="actions">{{with .Data.Newer}}<form method="get" action="/audit">{{range .Fields}}<input type="hidden" class="ident" name="{{.Name}}" value="{{.Value}}">{{end}}<button type="submit">{{t "admin.audit.newer"}}</button></form>{{end}}{{with .Data.Older}}<form method="get" action="/audit">{{range .Fields}}<input type="hidden" class="ident" name="{{.Name}}" value="{{.Value}}">{{end}}<button type="submit">{{t "admin.audit.older"}}</button></form>{{end}}</div>
27{{end}}<p class="small">{{t "admin.audit.retention"}} {{.Data.RetentionCount}} {{t .Data.RetentionUnit}}</p>
28{{end}}