Files
HexaWetter/frontend/admin.html
2026-06-18 23:59:08 +02:00

106 lines
4.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!doctype html>
<html lang="de" data-theme="dark">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex, nofollow" />
<title>Admin HexaWetter</title>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="stylesheet" href="style.css" />
</head>
<body class="admin-page">
<header class="site-header">
<div class="container header-inner">
<a class="brand-link" href="index.html">
<div class="brand-logo">H</div>
<div>
<div class="brand-sub">HexaWetter</div>
<div class="brand-title">Admin</div>
</div>
</a>
<div class="header-actions">
<a href="index.html" class="btn btn-secondary">Zurück</a>
<button id="logoutBtn" class="btn btn-ghost admin-hidden">Abmelden</button>
</div>
</div>
</header>
<main class="app-main">
<div class="container">
<section id="loginSection" class="admin-login-wrap">
<div class="glass-card admin-login-card">
<h1>Admin Login</h1>
<p class="muted">Geschützter Bereich für Service-Status und Einstellungen.</p>
<form id="loginForm">
<label>Benutzername<input id="adminUser" autocomplete="username" required /></label>
<label>Passwort<input id="adminPass" type="password" autocomplete="current-password" required minlength="8" /></label>
<button class="btn btn-primary full-width" type="submit" style="margin-top:12px">Anmelden</button>
</form>
<p id="loginError" class="admin-error"></p>
</div>
</section>
<section id="dashboardSection" class="admin-hidden">
<div class="admin-toolbar">
<div>
<h1>Dashboard</h1>
<p class="muted" id="adminTime"></p>
</div>
<div style="display:flex;gap:8px;flex-wrap:wrap">
<button id="refreshBtn" class="btn btn-secondary">Aktualisieren</button>
<button id="syncRadarBtn" class="btn btn-secondary">Radar syncen</button>
<button id="clearCacheBtn" class="btn btn-secondary">Redis-Cache leeren</button>
</div>
</div>
<section class="admin-grid" id="infraGrid"></section>
<section class="glass-card" style="margin-top:16px">
<h2>Dienste & Datenquellen</h2>
<div class="source-status-grid" id="serviceGrid"></div>
</section>
<section class="glass-card">
<h2>Speicher</h2>
<div class="admin-grid" id="storageGrid"></div>
</section>
<section class="glass-card">
<h2>Konfiguration</h2>
<pre class="config-block" id="configBlock"></pre>
</section>
<section class="glass-card">
<h2>Runtime-Einstellungen</h2>
<form id="settingsForm" class="settings-grid">
<label>Rate-Limit / Minute<input id="setRateLimit" type="number" min="10" max="1000" /></label>
<label>Cache Forecast (s)<input id="setCacheForecast" type="number" min="60" max="86400" /></label>
<label>Cache Observations (s)<input id="setCacheObs" type="number" min="60" max="86400" /></label>
<label>Cache Warnings (s)<input id="setCacheWarn" type="number" min="30" max="3600" /></label>
<label>Radar-Retention (h)<input id="setRadarRetention" type="number" min="6" max="168" /></label>
<div><button class="btn btn-primary full-width" type="submit">Speichern</button></div>
</form>
<p class="muted" id="settingsMsg" style="margin-top:10px"></p>
</section>
<section class="glass-card">
<div class="section-head">
<div><h2>Radar-Rohdaten</h2><p class="muted no-margin">Lokale DWD-Dateien und gerenderte Frames</p></div>
<span class="muted" id="renderedCount"></span>
</div>
<div class="table-wrap">
<table>
<thead><tr><th>Datei</th><th>Größe</th><th>Geändert</th><th></th></tr></thead>
<tbody id="radarFiles"></tbody>
</table>
</div>
<div class="rendered-grid" id="renderedFrames" style="margin-top:16px"></div>
</section>
</section>
</div>
</main>
<script src="admin.js"></script>
</body>
</html>