Files
mailgosend/web/admin/templates/dashboard.html
T
2026-05-22 06:06:44 +00:00

59 lines
3.1 KiB
HTML

{{define "title"}}Dashboard{{end}}
{{define "content"}}
<h1 class="text-xl font-bold text-white mb-6">Dashboard</h1>
<div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:1rem;margin-bottom:2rem">
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold text-blue-400">{{.Stats.TotalDomains}}</div>
<div class="text-xs text-gray-400 mt-1">Domains</div>
</div>
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold text-blue-400">{{.Stats.TotalUsers}}</div>
<div class="text-xs text-gray-400 mt-1">Users</div>
</div>
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold text-blue-400">{{.Stats.TotalMessages}}</div>
<div class="text-xs text-gray-400 mt-1">Messages</div>
</div>
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold {{if gt .Stats.QueuePending 0}}text-yellow-400{{else}}text-green-400{{end}}">{{.Stats.QueuePending}}</div>
<div class="text-xs text-gray-400 mt-1">Queue Pending</div>
</div>
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold {{if gt .Stats.QueueFailed 0}}text-red-400{{else}}text-green-400{{end}}">{{.Stats.QueueFailed}}</div>
<div class="text-xs text-gray-400 mt-1">Queue Failed</div>
</div>
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold {{if gt .Stats.ActiveBans 0}}text-red-400{{else}}text-gray-400{{end}}">{{.Stats.ActiveBans}}</div>
<div class="text-xs text-gray-400 mt-1">Active Bans</div>
</div>
<div class="card" style="margin:0;text-align:center">
<div class="text-3xl font-bold {{if gt .Stats.RecentEvents 0}}text-yellow-400{{else}}text-gray-400{{end}}">{{.Stats.RecentEvents}}</div>
<div class="text-xs text-gray-400 mt-1">Events (24h)</div>
</div>
</div>
<div style="display:grid;grid-template-columns:1fr 1fr;gap:1.5rem">
<div>
<h2 class="text-sm font-semibold text-gray-300 mb-2">Quick links</h2>
<div class="card" style="padding:.75rem">
<a href="/admin/domains" class="block py-2 px-3 rounded hover:bg-gray-700 text-sm text-blue-400">Manage domains</a>
<a href="/admin/users" class="block py-2 px-3 rounded hover:bg-gray-700 text-sm text-blue-400">Manage users</a>
<a href="/admin/queue" class="block py-2 px-3 rounded hover:bg-gray-700 text-sm text-blue-400">Inspect delivery queue</a>
<a href="/admin/bans" class="block py-2 px-3 rounded hover:bg-gray-700 text-sm text-blue-400">IP ban list</a>
<a href="/admin/events" class="block py-2 px-3 rounded hover:bg-gray-700 text-sm text-blue-400">Security events</a>
</div>
</div>
<div>
<h2 class="text-sm font-semibold text-gray-300 mb-2">System</h2>
<div class="card" style="padding:.75rem">
<div class="text-xs text-gray-400 space-y-1">
<div>Send SIGHUP to reload TLS certificates without restart.</div>
<div>Send SIGTERM/SIGINT for graceful shutdown (10s drain).</div>
<div class="pt-1 text-gray-500">Queue worker polls every 30 seconds.</div>
</div>
</div>
</div>
</div>
{{end}}