Files
at-container-registry/pkg/hold/admin/templates/pages/dashboard.html
T

59 lines
1.9 KiB
HTML

{{define "pages/dashboard.html"}}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Title}} - Hold Admin</title>
<script src="/admin/public/js/htmx.min.js"></script>
<link rel="stylesheet" href="/admin/public/css/admin.css">
</head>
<body>
{{template "nav" .}}
<main class="container">
{{if .Flash}}
<div class="flash flash-{{.Flash.Category}}">{{.Flash.Message}}</div>
{{end}}
<h1>Dashboard</h1>
<div class="stats-grid">
<div class="stat-card">
<h3>Crew Members</h3>
<p class="stat-value">{{.Stats.TotalCrewMembers}}</p>
</div>
<div class="stat-card" hx-get="/admin/api/stats" hx-trigger="load" hx-swap="innerHTML">
<p class="loading">Loading storage stats...</p>
</div>
</div>
<section class="section">
<h2>Tier Distribution</h2>
{{if .Stats.TierDistribution}}
<div class="tier-chart">
{{range $tier, $count := .Stats.TierDistribution}}
<div class="tier-bar">
<span class="tier-name">{{$tier}}</span>
<span class="tier-count">{{$count}} members</span>
</div>
{{end}}
</div>
{{else}}
<p class="empty">No crew members yet.</p>
{{end}}
</section>
<section class="section">
<h2>Top Users by Storage</h2>
<div hx-get="/admin/api/top-users?limit=10" hx-trigger="load" hx-swap="innerHTML">
<p class="loading">Loading top users...</p>
</div>
</section>
</main>
<footer class="footer"><p>Hold: <code>{{.HoldDID}}</code></p></footer>
</body>
</html>
{{end}}