Einheitliche Sim-Kopfzeile (Entwurf B) als Komponente + Lizenz-Datenmodell

- ggs-header.css/.js: schwebende Pillen-Kopfzeile aus vorhandenem
  .ggs-header-Markup (Kreis-Logo/Titel/Level als eine Pille, eigene
  SVG-Icons, Tempo-Panel links + Zustandsbutton, Musik-Panel unten,
  30% transparente Untermenues, Glossar target=_blank, Lehrplan raus).
  Enhance-Ansatz: Spiel-Logik (IDs/Klassen, data-speed) bleibt unberuehrt.
- Eingebaut in Klima 2D/3D, Fluss, Logistik (Auto-Tempo), Energiemanager,
  Kofferdetektiv 3D.
- admin-licenses.html: Datenmodell-Sektion (licenses-Tabelle, Lebenszyklus
  Generiert->Eingeloest->Zugewiesen, Beziehungen, Jahr->Schuljahr->Code).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-08-25 14:06:41 +02:00
parent 362aaba883
commit 502f271f36
9 changed files with 601 additions and 6 deletions
+3 -1
View File
@@ -7,6 +7,8 @@
<link rel="icon" type="image/png" href="../../favicon-96x96.png" sizes="96x96">
<link rel="stylesheet" href="../../assets/fonts/inter.css">
<link rel="stylesheet" href="../../assets/css/design-system.css">
<link rel="stylesheet" href="../../assets/css/ggs-header.css">
<script src="../../assets/js/ggs-header.js"></script>
<style>
/* ===== Energiemanager — Stufe 1 (2 Seen + 2 Pumpen + step-by-step) ===== */
@@ -741,7 +743,7 @@
<div class="em-layout">
<header class="ggs-header">
<header class="ggs-header" data-ggs-sim="energiemanager">
<a href="/schueler" class="ggs-header-logo" aria-label="GeoGraSim — zum Cockpit">
<img src="../../assets/img/bildLogo.png" alt="GeoGraSim" class="ggs-header-logo-icon">
</a>
+3 -1
View File
@@ -7,6 +7,8 @@
<link rel="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="stylesheet" href="../../assets/fonts/inter.css">
<link rel="stylesheet" href="../../assets/css/design-system.css">
<link rel="stylesheet" href="../../assets/css/ggs-header.css">
<script src="../../assets/js/ggs-header.js"></script>
<style>
/* ==========================================================
FLUSSMANAGEMENT — modul-spezifisches CSS
@@ -112,7 +114,7 @@
<!-- ============================================================
HEADER
============================================================ -->
<header class="ggs-header">
<header class="ggs-header" data-ggs-sim="fluss">
<a href="/schueler" class="ggs-header-logo">
<img src="../../assets/img/bildLogo.png" alt="" class="ggs-header-logo-icon">
<img src="../../assets/img/textlogo_geograsim.svg" alt="GeoGraSim" class="ggs-header-logo-text">
+3 -1
View File
@@ -7,6 +7,8 @@
<link rel="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="stylesheet" href="../../assets/fonts/inter.css">
<link rel="stylesheet" href="../../assets/css/design-system.css">
<link rel="stylesheet" href="../../assets/css/ggs-header.css">
<script src="../../assets/js/ggs-header.js"></script>
<style>
/* ================== MODUL-SPEZIFISCHE STYLES ================== */
@@ -666,7 +668,7 @@
<!-- ============================================================
HEADER
============================================================ -->
<header class="ggs-header" id="header">
<header class="ggs-header" id="header" data-ggs-sim="klima">
<a href="/schueler" class="ggs-header-logo">
<img src="../../assets/img/bildLogo.png" alt="" class="ggs-header-logo-icon">
<img src="../../assets/img/textlogo_geograsim.svg" alt="GeoGraSim" class="ggs-header-logo-text">
+3 -1
View File
@@ -7,6 +7,8 @@
<link rel="icon" type="image/svg+xml" href="../../favicon.svg">
<link rel="stylesheet" href="../../assets/fonts/inter.css">
<link rel="stylesheet" href="../../assets/css/design-system.css">
<link rel="stylesheet" href="../../assets/css/ggs-header.css">
<script src="../../assets/js/ggs-header.js"></script>
<style>
/* ================== MODUL-SPEZIFISCHE STYLES ================== */
@@ -792,7 +794,7 @@
<!-- ============================================================
HEADER
============================================================ -->
<header class="ggs-header" id="header">
<header class="ggs-header" id="header" data-ggs-sim="klima">
<a href="/schueler" class="ggs-header-logo">
<img src="../../assets/img/bildLogo.png" alt="" class="ggs-header-logo-icon">
<img src="../../assets/img/textlogo_geograsim.svg" alt="GeoGraSim" class="ggs-header-logo-text">
+3 -1
View File
@@ -4,6 +4,8 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>Kofferdetektiv — GeoGraSim</title>
<link rel="stylesheet" href="../../assets/css/ggs-header.css">
<script src="../../assets/js/ggs-header.js"></script>
<style>
/* ============ Design-System-Variablen (Fallback, identisch zur Plattform) ============ */
:root{
@@ -379,7 +381,7 @@ body.kd-touch #joystick,body.kd-touch #lookstick{display:block}
</div>
</div>
<header class="ggs-header">
<header class="ggs-header" data-ggs-sim="kofferdetektiv">
<a href="/schueler" class="ggs-header-logo" id="ggs-home-logo">
<img src="/assets/img/bildLogo.png" alt="" class="ggs-header-logo-icon" onerror="this.setAttribute('data-broken',1)">
<img src="/assets/img/textlogo_geograsim.svg" alt="GeoGraSim" class="ggs-header-logo-text" onerror="this.setAttribute('data-broken',1)">
+3 -1
View File
@@ -9,6 +9,8 @@
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css">
<link rel="stylesheet" href="../../assets/fonts/inter.css">
<link rel="stylesheet" href="../../assets/css/design-system.css">
<link rel="stylesheet" href="../../assets/css/ggs-header.css">
<script src="../../assets/js/ggs-header.js"></script>
<style>
/* ===== Modul-spezifische Styles =====
Regel: Alles, was auch andere Module brauchen könnten, gehört ins
@@ -566,7 +568,7 @@ if (!window.LOGISTIK_BASE) {
<div class="lg-layout">
<!-- ============= Header (nach App/sims/template.html) ============= -->
<header class="ggs-header">
<header class="ggs-header" data-ggs-sim="logistik">
<a href="/schueler" class="ggs-header-logo">
<img src="../../assets/img/bildLogo.png" alt="" class="ggs-header-logo-icon">
<img src="../../assets/img/textlogo_geograsim.svg" alt="GeoGraSim" class="ggs-header-logo-text">