Add SSO admin console for dashboard
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 11s
All checks were successful
Build & Push Docker Image to Gitea Registry / build-and-push (push) Successful in 11s
This commit is contained in:
62
admin.html
Normal file
62
admin.html
Normal file
@@ -0,0 +1,62 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="de">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>MischLabs Admin</title>
|
||||
<meta name="description" content="MischLabs dashboard administration.">
|
||||
<meta name="theme-color" content="#0f172a">
|
||||
<link rel="stylesheet" href="/style.css?v=10">
|
||||
</head>
|
||||
<body>
|
||||
<header class="shell hero admin-hero">
|
||||
<div class="brand">
|
||||
<img class="brand-mark" src="/icons/app-icon-source.png" alt="" width="72" height="72">
|
||||
<div>
|
||||
<p class="eyebrow">Admin</p>
|
||||
<h1>MischLabs</h1>
|
||||
<p class="subtitle">Dienste pruefen, Kategorien vorbereiten und Dashboard-Konfiguration verwalten.</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="admin-actions">
|
||||
<a class="ghost-button" href="/">Dashboard</a>
|
||||
<button class="ghost-button" id="loginButton" type="button">Mit Keycloak anmelden</button>
|
||||
<button class="ghost-button" id="logoutButton" type="button" hidden>Abmelden</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="shell admin-shell">
|
||||
<section class="admin-panel" id="loginPanel">
|
||||
<p class="section-kicker">SSO</p>
|
||||
<h2>Anmeldung erforderlich</h2>
|
||||
<p class="admin-copy">Diese Seite nutzt Keycloak per Authorization Code + PKCE. Der Client muss in Keycloak als Public Client mit Redirect URI `https://mischlabs.de/admin.html` angelegt sein.</p>
|
||||
<div class="notice" id="loginMessage">Noch nicht angemeldet.</div>
|
||||
</section>
|
||||
|
||||
<section class="admin-panel" id="adminPanel" hidden>
|
||||
<div class="admin-panel-head">
|
||||
<div>
|
||||
<p class="section-kicker">Konfiguration</p>
|
||||
<h2>Dienste & Kategorien</h2>
|
||||
</div>
|
||||
<div class="admin-actions compact">
|
||||
<button class="ghost-button" id="checkAllButton" type="button">Status pruefen</button>
|
||||
<button class="ghost-button" id="saveLocalButton" type="button">Lokal speichern</button>
|
||||
<button class="ghost-button" id="resetLocalButton" type="button">Lokale Aenderungen verwerfen</button>
|
||||
<button class="ghost-button" id="downloadConfigButton" type="button">JSON exportieren</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="notice">
|
||||
Hinweis: Ohne Backend speichert diese Adminseite Aenderungen lokal im Browser und kann eine neue `services.json` exportieren. Fuer globale Live-Aenderungen bauen wir als naechsten Schritt ein kleines Backend oder einen Gitea-Commit-Workflow.
|
||||
</div>
|
||||
|
||||
<div class="admin-user" id="adminUser"></div>
|
||||
<div class="admin-table" id="serviceEditor"></div>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<script src="/admin.js?v=1" defer></script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user