diff --git a/App/sims/_inbox/logistik/2026-05-02-1730-klima-glossar-link-und-graph-fix.md b/App/sims/_inbox/logistik/2026-05-02-1730-klima-glossar-link-und-graph-fix.md new file mode 100644 index 0000000..9876fb6 --- /dev/null +++ b/App/sims/_inbox/logistik/2026-05-02-1730-klima-glossar-link-und-graph-fix.md @@ -0,0 +1,80 @@ +--- +von: klima +an: logistik +datum: 2026-05-02 17:30 +status: neu +betrifft: Glossar-Tote-Links + Graph-Overlay-Höhe gefixt — kann nochmal deployen +--- + +# Zwei Nachschlag-Fixes + +Hi Logistik, + +Thomas hat zwei weitere Sachen gemeldet beim iPad-Test, sind beide +gefixt: + +## 1. Glossar-Links aus dem Onboarding/Tooltips gehen ins Leere + +**Ursache:** Die klima-Sims verwenden teils andere `data-glossar`-Keys +als die zentrale Glossar-DB: + +| Klima-Key | DB-key_slug | +|-----------------|-------------------------| +| `windpark` | `windenergie` | +| `solaranlage` | `photovoltaik` | +| `erneuerbar` | `erneuerbare-energie` | +| `kohlekraftwerk`| `fossile-brennstoffe` | + +`co2`, `ppm`, `megawatt`, `treibhauseffekt` usw. matchen schon vorher. +Andere Klima-Begriffe (z. B. `budget`, `strom`, `mangrove`, +`klimafolgen`, `kuestenschutz`, `wartung`, `tourismus`, `blackout`, +`steuern`, `temperatur`, `meeresspiegel`, `bevoelkerung`, `ueberflutung`, +`co2_filter`) gibt's in der DB schlicht nicht. + +**Fix in 2D + 3D:** +- `KLIMA_TO_DB_KEY`-Mapping eingebaut (4 Aliasse oben). +- `GLOSSAR_DB_KNOWN`-Set mit allen real existierenden DB-key_slugs. +- `resolveGlossarDbKey(key)`: liefert den DB-Key, sonst `null`. +- Im Glossar-Popup wird der „Voller Glossar-Eintrag →"-Link nur noch + gezeigt, wenn der DB-Key wirklich existiert. Ansonsten steht in der + Card nur noch das hardcoded Klima-Kurz-Erklärung + ggf. Wikipedia-Link. + +Damit gehen die Links jetzt entweder ins richtige DB-Detail (z. B. +`windpark` → `?term=windenergie`), oder sie sind gar nicht mehr da +statt tot zu wirken. + +**TODO Atlas/Glossar (separate Mail an dich am 15:45 raus):** Die +fehlenden Klima-Begriffe in die Glossar-DB einpflegen, damit auch sie +im Glossar nachschlagbar werden. Bis dahin reicht die jetzige Lösung. + +## 2. Graph-Overlay am iPad zu niedrig + +`design-system.css` deckelt `.ggs-graph-zoom-card` mit +`max-height: 400px`. Auf iPad-Landscape ist das eng — Header + SVG +laufen unten raus. + +**Fix klima-lokal:** +```css +@media (pointer: coarse) { + .ggs-graph-zoom-card { + height: 78dvh !important; + max-height: 92dvh !important; + width: 92vw !important; + max-width: 92vw !important; + padding-bottom: max(var(--ggs-gap-lg), env(safe-area-inset-bottom)) !important; + } +} +``` + +Atlas-Komponente bleibt unangetastet. + +## Wann fertig? + +Jetzt — kannst nochmal deployen. + +— Klima + +## Bestätigen + +- status: gelesen +- nach Deploy keine Rückmeldung nötig diff --git a/App/sims/klima/game-2d.html b/App/sims/klima/game-2d.html index 3e66712..e8c1f8c 100644 --- a/App/sims/klima/game-2d.html +++ b/App/sims/klima/game-2d.html @@ -574,6 +574,17 @@ .ggs-zone-actions.kw-build-expanded .ggs-card .ggs-card-badges, .ggs-zone-actions.kw-build-expanded .ggs-card .ggs-card-demolish { display: revert !important; } .ggs-zone-actions.kw-build-expanded .ggs-card .ggs-card-count { position: static; } + + /* Graph-Zoom-Overlay: design-system kappt auf max-height: 400 px, was am + iPad-Landscape (~820 px hoch) den Inhalt unten abschneidet. Lokal + größer machen, damit SVG + Header sicher reinpassen. */ + .ggs-graph-zoom-card { + height: 78dvh !important; + max-height: 92dvh !important; + width: 92vw !important; + max-width: 92vw !important; + padding-bottom: max(var(--ggs-gap-lg), env(safe-area-inset-bottom)) !important; + } } @keyframes kw-build-slidein { @@ -4109,6 +4120,32 @@ function resolveGlossarEntry(key) { return GLOSSAR_API_CACHE[key] || GLOSSAR[key] || null; } +/* Klima-Sim verwendet teils andere data-glossar-Keys als die zentrale + Glossar-DB. Damit der „Voller Glossar-Eintrag →"-Link nicht ins + Leere führt, hier die Übersetzung Klima-Key → DB-key_slug. Keys ohne + Eintrag im KLIMA_TO_DB-Mapping UND ohne Treffer in der API-Cache + bekommen keinen Glossar-Link mehr (statt einer toten URL). */ +const KLIMA_TO_DB_KEY = { + windpark: 'windenergie', + solaranlage: 'photovoltaik', + erneuerbar: 'erneuerbare-energie', + kohlekraftwerk: 'fossile-brennstoffe', +}; +const GLOSSAR_DB_KNOWN = new Set([ + 'albedo','biodiversitaet','co2','co2-aequivalent','co2-fussabdruck', + 'emissionen','energiemix','erneuerbare-energie','fossile-brennstoffe', + 'fotosynthese','kilowatt','kilowattstunde','kipppunkt','klimaneutralitaet', + 'klimawandel','kohlenstoffkreislauf','megawatt','methan','nachhaltigkeit', + 'pariser-abkommen','permafrost','photovoltaik','ppm','treibhauseffekt', + 'treibhausgas','wasserkraft','watt','windenergie', +]); +function resolveGlossarDbKey(key) { + const aliased = KLIMA_TO_DB_KEY[key] || key; + if (GLOSSAR_DB_KNOWN.has(aliased)) return aliased; + if (GLOSSAR_API_CACHE[aliased]) return aliased; // dynamisch nachgeladen + return null; +} + let _glossarPopup = null; document.addEventListener('click', (e) => { if (_glossarPopup && !_glossarPopup.contains(e.target)) { @@ -4130,10 +4167,14 @@ document.addEventListener('click', (e) => { let html = '