Raw
 1{{define "title"}}{{t "account.sessions.title"}}{{end}}
 2{{define "content"}}{{template "account-header" .}}<h1>{{t "account.sessions.title"}}</h1>
 3<p>{{t "account.sessions.intro"}}</p>
 4{{if .Data.Rows}}{{template "admin-range" .Data.Pager}}<div class="sessions">
 5{{range .Data.Rows}}<dl>
 6<dt>{{id .Host}}{{if .Current}} <small>{{t "account.sessions.current"}}</small>{{else if .Browser}} <small>{{t "account.sessions.this_browser"}}</small>{{end}}</dt>
 7<dd>{{if or .Agent .Address}}{{if .Agent}}<details><summary>{{if .Device}}{{.Device}}{{else}}{{t "account.sessions.other_device"}}{{end}}</summary>{{.Agent}}</details>{{end}}{{if .Address}}<code>{{.Address}}</code>{{end}}{{else}}{{t "account.sessions.not_recorded"}}{{end}}{{if .Client}} · {{tr "account.sessions.via" .Client}}{{end}}</dd>
 8<dd>{{t "account.sessions.opened"}} {{.Opened}} · {{t "account.sessions.last_seen"}} {{if .LastSeen}}{{.LastSeen}}{{else}}{{t "account.sessions.unknown"}}{{end}} · {{t "account.sessions.ends"}} {{.Ends}}</dd>
 9<dd>{{if .Current}}<a href="/logout">{{t "session.sign_out"}}</a>{{else}}<form method="post" action="/sessions/revoke"><input type="hidden" name="csrf" value="{{$.CSRF}}"><input type="hidden" class="ident" name="id" value="{{.ID}}"><button type="submit">{{t "account.sessions.revoke"}}</button></form>{{end}}</dd>
10</dl>
11{{end}}</div>
12{{template "admin-pager" .Data.Pager}}{{else if .Data.Pager.Total}}{{template "admin-empty-page" .Data.Pager}}{{end}}<div class="actions">{{if .Data.Others}}<form method="get" action="/sessions/revoke-all"><button type="submit">{{t "account.sessions.revoke_all"}}</button></form>{{end}}<form method="get" action="/logout/browser"><button type="submit">{{t "account.browser.sign_out"}}</button></form></div>
13{{end}}