backend-server-v2/web/templates/admin/users.html

60 lines
2.9 KiB
HTML

{{define "content"}}
<div class="space-y-4">
<div>
<h1 class="text-2xl font-semibold">Admin - Users</h1>
<p class="muted">Elenco utenti server-rendered.</p>
</div>
<form class="row items-center" method="get" action="/admin/users">
<input class="input-base" type="text" name="q" placeholder="Cerca nome o email" value="{{.PageData.Q}}">
<select class="input-base" name="sort">
<option value="id" {{if eq .PageData.Sort "id"}}selected{{end}}>ID</option>
<option value="name" {{if eq .PageData.Sort "name"}}selected{{end}}>Name</option>
<option value="email" {{if eq .PageData.Sort "email"}}selected{{end}}>Email</option>
</select>
<select class="input-base" name="dir">
<option value="asc" {{if eq .PageData.Dir "asc"}}selected{{end}}>ASC</option>
<option value="desc" {{if eq .PageData.Dir "desc"}}selected{{end}}>DESC</option>
</select>
<input class="input-base w-28" type="number" name="pageSize" min="1" max="100" value="{{.PageData.PageSize}}">
<input type="hidden" name="page" value="1">
<button class="btn-primary" type="submit">Filtra</button>
</form>
<div class="overflow-x-auto">
<table class="w-full border-collapse">
<thead>
<tr class="border-b border-slate-200 text-left">
<th class="px-2 py-2">ID</th>
<th class="px-2 py-2">Name</th>
<th class="px-2 py-2">Email</th>
<th class="px-2 py-2">Role</th>
<th class="px-2 py-2">Verified</th>
</tr>
</thead>
<tbody>
{{range .PageData.Users}}
<tr class="border-b border-slate-100">
<td class="px-2 py-2">{{.ID}}</td>
<td class="px-2 py-2">{{if .Name}}{{.Name}}{{else}}-{{end}}</td>
<td class="px-2 py-2">{{.Email}}</td>
<td class="px-2 py-2">{{.Role}}</td>
<td class="px-2 py-2">{{if .EmailVerified}}yes{{else}}no{{end}}</td>
</tr>
{{else}}
<tr><td colspan="5" class="px-2 py-3">Nessun utente trovato.</td></tr>
{{end}}
</tbody>
</table>
</div>
<div class="row items-center justify-between">
<div class="muted">Totale: {{.PageData.Total}} utenti. Pagina {{.PageData.Page}}{{if gt .PageData.TotalPages 0}} / {{.PageData.TotalPages}}{{end}}</div>
<div class="row">
<a class="rounded border border-slate-300 px-3 py-1.5 hover:bg-slate-50 {{if not .PageData.HasPrev}}pointer-events-none opacity-50{{end}}" href="/admin/users?q={{.PageData.Q}}&sort={{.PageData.Sort}}&dir={{.PageData.Dir}}&page={{.PageData.PrevPage}}&pageSize={{.PageData.PageSize}}">Prev</a>
<a class="rounded border border-slate-300 px-3 py-1.5 hover:bg-slate-50 {{if not .PageData.HasNext}}pointer-events-none opacity-50{{end}}" href="/admin/users?q={{.PageData.Q}}&sort={{.PageData.Sort}}&dir={{.PageData.Dir}}&page={{.PageData.NextPage}}&pageSize={{.PageData.PageSize}}">Next</a>
</div>
</div>
</div>
{{end}}