Files
mcias/web/templates/accounts.html
Kyle Isom e63d9863b6 Implement dashboard and audit log templates, add paginated audit log support
- Added `web/templates/{dashboard,audit,base,accounts,account_detail}.html` for a consistent UI.
- Implemented new audit log endpoint (`GET /v1/audit`) with filtering and pagination via `ListAuditEventsPaged`.
- Extended `AuditQueryParams`, added `AuditEventView` for joined actor/target usernames.
- Updated configuration (`goimports` preference), linting rules, and E2E tests.
- No logic changes to existing APIs.
2026-03-11 14:05:08 -07:00

56 lines
2.1 KiB
HTML

{{define "accounts"}}{{template "base" .}}{{end}}
{{define "title"}}Accounts — MCIAS{{end}}
{{define "content"}}
<div class="page-header d-flex align-center justify-between">
<div>
<h1>Accounts</h1>
<p class="text-muted text-small">Manage user and service accounts</p>
</div>
<button class="btn btn-primary"
onclick="var f=document.getElementById('create-form');f.style.display=f.style.display==='none'?'block':'none'">
+ New Account
</button>
</div>
<div id="create-form" class="card mt-2" style="display:none">
<h2 style="font-size:1rem;font-weight:600;margin-bottom:1rem">Create Account</h2>
<form hx-post="/accounts" hx-target="#accounts-tbody" hx-swap="afterbegin">
<input type="hidden" name="_csrf" value="{{.CSRFToken}}">
<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem">
<div class="form-group">
<label for="new-username">Username</label>
<input class="form-control" type="text" id="new-username" name="username" required>
</div>
<div class="form-group">
<label for="new-password">Password</label>
<input class="form-control" type="password" id="new-password" name="password">
<span class="form-hint">Required for human accounts</span>
</div>
<div class="form-group">
<label for="new-type">Type</label>
<select class="form-control" id="new-type" name="account_type">
<option value="human">Human</option>
<option value="system">System</option>
</select>
</div>
</div>
<div class="form-actions">
<button class="btn btn-primary" type="submit">Create</button>
<button class="btn btn-secondary" type="button"
onclick="document.getElementById('create-form').style.display='none'">Cancel</button>
</div>
</form>
</div>
<div class="table-wrapper mt-2">
<table>
<thead>
<tr>
<th>Username</th><th>Type</th><th>Status</th><th>TOTP</th><th>Created</th><th>Actions</th>
</tr>
</thead>
<tbody id="accounts-tbody">
{{range .Accounts}}{{template "account_row" .}}{{end}}
</tbody>
</table>
</div>
{{end}}