mirror of
https://tangled.org/evan.jarrett.net/at-container-registry
synced 2026-09-28 13:05:34 +00:00
59 lines
1.9 KiB
HTML
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}}
|