Files
mailgosend/web/admin/templates/base.html
T

68 lines
3.6 KiB
HTML
Raw Normal View History

2026-05-22 06:06:44 +00:00
{{define "base"}}<!DOCTYPE html>
<html lang="en" class="dark">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{template "title" .}} — mailgosend admin</title>
<script src="https://cdn.tailwindcss.com"></script>
<script>tailwind.config={darkMode:'class'}</script>
<style>
body{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.nav-link{display:block;padding:.375rem .625rem;border-radius:.375rem;font-size:.875rem;color:#9ca3af;transition:background .15s}
.nav-link:hover{background:#374151;color:#f9fafb}
.nav-link.active{background:#1d4ed8;color:#fff}
.btn{display:inline-block;padding:.375rem .875rem;border-radius:.375rem;font-size:.875rem;font-weight:500;cursor:pointer;border:none;text-decoration:none}
.btn-primary{background:#1d4ed8;color:#fff}.btn-primary:hover{background:#1e40af}
.btn-danger{background:#dc2626;color:#fff}.btn-danger:hover{background:#b91c1c}
.btn-sm{padding:.25rem .625rem;font-size:.75rem}
.card{background:#1f2937;border-radius:.5rem;padding:1.25rem;margin-bottom:1rem}
table{width:100%;border-collapse:collapse;font-size:.875rem}
th{text-align:left;padding:.5rem .75rem;color:#9ca3af;font-weight:500;border-bottom:1px solid #374151;white-space:nowrap}
td{padding:.5rem .75rem;border-bottom:1px solid #1f2937;vertical-align:top}
tr:hover td{background:#1f2937}
input,select,textarea{background:#374151;border:1px solid #4b5563;border-radius:.375rem;color:#f9fafb;padding:.375rem .625rem;font-size:.875rem;width:100%;box-sizing:border-box}
input:focus,select:focus,textarea:focus{outline:none;border-color:#3b82f6}
label{display:block;font-size:.75rem;color:#9ca3af;margin-bottom:.25rem}
.field{margin-bottom:.875rem}
.badge{display:inline-block;padding:.125rem .375rem;border-radius:.25rem;font-size:.7rem;font-weight:600}
.badge-green{background:#065f46;color:#6ee7b7}
.badge-red{background:#7f1d1d;color:#fca5a5}
.badge-yellow{background:#78350f;color:#fcd34d}
.badge-gray{background:#374151;color:#9ca3af}
2026-05-25 14:30:41 +00:00
.badge-blue{background:#1e3a5f;color:#93c5fd}
2026-05-22 06:06:44 +00:00
.flash-ok{background:#064e3b;border:1px solid #065f46;color:#6ee7b7;padding:.75rem 1rem;border-radius:.375rem;margin-bottom:1rem;font-size:.875rem}
.flash-err{background:#7f1d1d;border:1px solid #991b1b;color:#fca5a5;padding:.75rem 1rem;border-radius:.375rem;margin-bottom:1rem;font-size:.875rem}
</style>
</head>
<body class="bg-gray-900 text-gray-100 min-h-screen flex">
{{if .Admin}}
<nav class="w-44 bg-gray-800 min-h-screen p-3 fixed flex flex-col" style="border-right:1px solid #374151">
<div class="text-sm font-bold text-white mb-1 px-2 py-1">mailgosend</div>
<div class="text-xs text-gray-500 px-2 mb-2">admin panel</div>
<hr style="border-color:#374151;margin-bottom:.75rem">
<a href="/admin/" class="nav-link">Dashboard</a>
<a href="/admin/domains" class="nav-link">Domains</a>
<a href="/admin/users" class="nav-link">Users</a>
<a href="/admin/queue" class="nav-link">Delivery Queue</a>
<a href="/admin/bans" class="nav-link">IP Bans</a>
<a href="/admin/events" class="nav-link">Security Events</a>
<div class="mt-auto pt-4 border-t" style="border-color:#374151">
<div class="text-xs text-gray-500 px-2 mb-1">{{.Admin.Email}}</div>
<a href="/admin/logout" class="nav-link text-xs">Logout</a>
</div>
</nav>
<main class="flex-1 p-6" style="margin-left:11rem;min-width:0">
{{else}}
<main class="flex-1 p-6">
{{end}}
{{if .Flash}}<div class="flash-ok">{{.Flash}}</div>{{end}}
{{if .Error}}<div class="flash-err">{{.Error}}</div>{{end}}
{{template "content" .}}
</main>
</body>
</html>
{{end}}