77 lines
2.6 KiB
HTML
77 lines
2.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="dark">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>{{ .AppName }}</title>
|
|
<link rel="icon" href="/static/favicon.svg">
|
|
<link href="/static/tailwind.css" rel="stylesheet">
|
|
<style>
|
|
.sidebar {
|
|
transition: transform 0.3s ease;
|
|
}
|
|
.sidebar.hidden {
|
|
transform: translateX(-100%);
|
|
}
|
|
main {
|
|
transition: margin-left 0.3s ease;
|
|
}
|
|
main.sidebar-open {
|
|
margin-left: 240px;
|
|
}
|
|
</style>
|
|
</head>
|
|
<body class="bg-gray-900 text-gray-100 min-h-screen flex flex-col">
|
|
{{ template "notifications" . }}
|
|
|
|
<header class="bg-gray-800 p-4 flex items-center justify-between relative z-20">
|
|
<div class="flex items-center gap-4">
|
|
{{ if .Authenticated }}
|
|
<button id="sidebarToggle" class="text-2xl" onclick="toggleSidebar()">☰</button>
|
|
{{ end }}
|
|
<h1 class="text-xl font-bold">{{ .AppName }}</h1>
|
|
</div>
|
|
{{ if .Authenticated }}
|
|
<div class="flex gap-4">
|
|
<a href="/profile" class="hover:text-blue-400">Profile</a>
|
|
<a href="/logout" class="hover:text-blue-400">Logout</a>
|
|
</div>
|
|
{{ end }}
|
|
</header>
|
|
|
|
{{ if .Authenticated }}
|
|
<div class="flex">
|
|
<!-- Sidebar -->
|
|
<aside id="sidebar" class="sidebar fixed left-0 top-16 w-60 h-full bg-gray-800 border-r border-gray-700 overflow-y-auto hidden">
|
|
<nav class="p-4 space-y-2">
|
|
<a href="/filters" class="block px-4 py-2 rounded hover:bg-gray-700">Filters</a>
|
|
<a href="/urllists" class="block px-4 py-2 rounded hover:bg-gray-700">Global URL Lists</a>
|
|
<a href="/logs" class="block px-4 py-2 rounded hover:bg-gray-700">Logs</a>
|
|
</nav>
|
|
</aside>
|
|
|
|
<!-- Main Content -->
|
|
<main id="mainContent" class="flex-grow container mx-auto p-4 pt-4">
|
|
{{ block "content" . }}{{ end }}
|
|
</main>
|
|
</div>
|
|
{{ else }}
|
|
<main class="flex-grow container mx-auto p-4 pt-4">
|
|
{{ block "content" . }}{{ end }}
|
|
</main>
|
|
{{ end }}
|
|
|
|
<footer class="bg-gray-800 p-4 text-center mt-auto">
|
|
© 2025 {{ .AppName }}
|
|
</footer>
|
|
|
|
<script>
|
|
function toggleSidebar() {
|
|
const sidebar = document.getElementById('sidebar');
|
|
const mainContent = document.getElementById('mainContent');
|
|
sidebar.classList.toggle('hidden');
|
|
mainContent.classList.toggle('sidebar-open');
|
|
}
|
|
</script>
|
|
</body>
|
|
</html> |