afluakd9's picture
Initial commit without binary files
bbe872c
Raw History Blame Contribute Delete
3.66 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>reclip admin{% block title %}{% endblock %}</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;600&display=swap" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/chart.js@4/dist/chart.umd.min.js"></script>
<link rel="stylesheet" href="/static/style.css" />
</head>
<body>
<!-- Hamburger button (mobile only) -->
<button class="hamburger" id="hamburger" aria-label="Toggle sidebar">
<span></span><span></span><span></span>
</button>
<!-- Sidebar -->
<aside class="sidebar" id="sidebar">
<div class="sidebar-logo">reclip</div>
<nav class="sidebar-nav">
<a href="/" class="nav-item{% if active == 'dashboard' %} active{% endif %}">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="3" width="7" height="7"/><rect x="14" y="3" width="7" height="7"/><rect x="3" y="14" width="7" height="7"/><rect x="14" y="14" width="7" height="7"/></svg>
<span>Dashboard</span>
</a>
<a href="/history" class="nav-item{% if active == 'history' %} active{% endif %}">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/></svg>
<span>History</span>
</a>
<a href="/errors" class="nav-item{% if active == 'errors' %} active{% endif %}">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="8" x2="12" y2="12"/><line x1="12" y1="16" x2="12.01" y2="16"/></svg>
<span>Errors</span>
</a>
<a href="/admin" class="nav-item{% if active == 'admin' %} active{% endif %}">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="3"/><path d="M19.07 4.93a10 10 0 010 14.14M4.93 4.93a10 10 0 000 14.14"/></svg>
<span>Admin</span>
</a>
</nav>
<div class="sidebar-bottom">
<a href="/logout" class="nav-item">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9 21H5a2 2 0 01-2-2V5a2 2 0 012-2h4"/><polyline points="16 17 21 12 16 7"/><line x1="21" y1="12" x2="9" y2="12"/></svg>
<span>Logout</span>
</a>
</div>
</aside>
<!-- Sidebar overlay (mobile) -->
<div class="sidebar-overlay" id="sidebar-overlay"></div>
<!-- Main content -->
<main class="content">
<div class="content-inner">
{% block content %}{% endblock %}
</div>
</main>
<!-- Toast container -->
<div id="toast-container" class="toast-container"></div>
<script src="/static/dashboard.js"></script>
<script>
// Hamburger toggle
const hamburger = document.getElementById('hamburger');
const sidebar = document.getElementById('sidebar');
const overlay = document.getElementById('sidebar-overlay');
if (hamburger) {
hamburger.addEventListener('click', () => {
sidebar.classList.toggle('open');
overlay.classList.toggle('visible');
});
overlay.addEventListener('click', () => {
sidebar.classList.remove('open');
overlay.classList.remove('visible');
});
}
</script>
</body>
</html>