- Rename app title to SUB-ALIGATOR (header, page titles, exports, README) - Add dark amber-terminal theme with a header toggle, persisted in localStorage - Add pool deletion (soft delete): allocations are kept in history and block the address space again when the same or an overlapping pool is re-added (re-enable on exact CIDR match, re-attach contained allocations) - Reject new pools that overlap an enabled pool - Move Home link into the page header, keep other links in the footer - Load app.js globally via base template, add theme.js (CSP-safe, no inline JS)
37 lines
1.3 KiB
HTML
37 lines
1.3 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<meta name="htmx-config" content='{"includeIndicatorStyles":false}'>
|
|
<title>{% block title %}SUB-ALIGATOR{% endblock %}</title>
|
|
<script src="/static/theme.js"></script>
|
|
<link rel="stylesheet" href="/static/style.css">
|
|
<script src="/static/htmx.min.js" defer></script>
|
|
<script src="/static/app.js" defer></script>
|
|
{% block head %}{% endblock %}
|
|
</head>
|
|
<body>
|
|
<div class="container">
|
|
<header>
|
|
<div class="header-nav header-nav-left">
|
|
<a href="/" class="btn btn-secondary">Home</a>
|
|
</div>
|
|
<div class="header-nav header-nav-right">
|
|
<button type="button" id="theme-toggle" class="btn btn-secondary">[ Dark ]</button>
|
|
</div>
|
|
<h1>SUB-ALIGATOR</h1>
|
|
<p>Internal IPv4 subnet allocation and tracking</p>
|
|
</header>
|
|
{% block content %}{% endblock %}
|
|
<footer class="box">
|
|
<p class="small">
|
|
<a href="/pools">Manage pools</a> |
|
|
<a href="/exports/allocations.md">Markdown export</a> |
|
|
<a href="/exports/allocations.csv">CSV export</a> |
|
|
<a href="/exports/allocations.json">JSON export</a>
|
|
</p>
|
|
</footer>
|
|
</div>
|
|
</body>
|
|
</html>
|