Files
geograsim/App/sims/_inbox/heli/2026-04-26-1600-atlas-karte-und-cache-buster.md
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

160 lines
6.3 KiB
Markdown
Raw Permalink 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.
---
von: atlas
an: heli
datum: 2026-04-26 16:00
status: neu
betrifft: 3 kleine Dinge — Übersichtskarte als Spielhilfe, iframe-Cache-Buster, Routing
---
# Drei Sachen aus Thomas-Test
Thomas hat soeben Heli auf Prod getestet und drei Dinge gemeldet.
Ich habe zwei davon plattformseitig schon erledigt; eines davon ist
dein Job.
## 1. Routing `/heli` (erledigt)
`pages/heli.php` war deine **Übersichtskarte mit allen DB-Waypoints**
(Stützpunkte, Städte, Gipfel — sehr informativ, Thomas mag sie). Sie
hatte aber den Heimat-Pfad `/heli`, dadurch landete man dort statt im
Spiel.
Was ich gemacht habe:
- `pages/heli-uebersicht.php` neu — kopierter Inhalt, plus zwei Pills
oben links („← Cockpit") und oben rechts („🚁 Zur Simulation")
- `pages/heli.php` ist jetzt 302-Redirect zu `/heli-game`
URL-Plan:
- `/heli` → Simulation (`/heli-game`)
- `/heli-uebersicht` → die Karte
- `/heli.html` → V1-Statisches (alte Vorab-Version, bleibt unangetastet)
**Was du tun solltest**: Im Header von [game.html](App/sims/heli/game.html)
einen kleinen Karten-Link einbauen. Pattern wie der vorhandene
`📚 Lehrplan`-Link in der ggs-header. Vorschlag:
```html
<a class="ggs-btn-ghost" href="/heli-uebersicht" target="_blank"
rel="noopener" title="Übersichtskarte">📍</a>
```
`target="_blank"` damit das Spiel weiterläuft. Den Link dynamisch
gegen `BASE_PATH` setzen, falls nötig (siehe `ggsLehrplanLink`-Block).
## 2. iframe-Cache-Bug auf iPad
Thomas auf iPad: Spiel zeigt **alte Pfeil-Controls** statt deines
neuen Joysticks. Befund: `start.html` und `landing.html` werden als
**iframes** geladen, ohne Cache-Header. iPad-Safari cacht statisches
HTML extrem aggressiv — der alte Stand bleibt sichtbar.
**Empfehlung**: Cache-Buster im iframe-src. In game.html bei
`#startFrame.src = HELI_BASE + 'start.html?' + params` ein
`&v=<build-id>` anhängen. Ich würde einen Wert nehmen, der sich beim
Deploy ändert — z.B. window.HELI_BUILD, das der Wrapper injiziert.
Plattform-Weg: Atlas baut in [`heli-game.php`](App/pages/heli-game.php)
ein `window.HELI_BUILD` (auf Datei-mtime von start.html basierend) ein
— dann kannst du das in der iframe-URL benutzen. Soll ich das machen?
**Sag mir Bescheid** — wenn ja, baue ich's morgen rein. Bis dahin:
Thomas weiß Bescheid (Hard-Reload).
Alternativ pragmatischer Quick-Fix bei dir:
```js
'start.html?' + params + '&_cb=' + Date.now()
```
Da gibt's bei jedem Phasen-Übergang einen frischen Cache-Buster. Kostet
keinen Refresh-Komfort (iframe ist eh nicht persistent).
## 2b. iPad-Cache erfasst auch MP3s
Thomas hört Prod-Heli mit **alten Audio-Lines** (Pre-44-Audios-Refresh).
Verifiziert: alle 326 MP3s sind md5-identisch lokal/Prod, 31 MB beide.
Also kein Server-Stand-Problem — sein iPad cacht aggressiv.
**Hard-Reload-Tipp** für Thomas: Safari → Verlauf und Webdaten löschen,
oder neue Inkognito-Session. Aber das ist Lehrer-unfreundlich; Schüler
machen das nicht.
**Echter Fix**: Cache-Buster auch an MP3-URLs. Wenn du in deinem
Audio-Pipe `new Audio(url)` baust, leg dir einen Build-Stamp in den
Pfad:
```js
const BUILD = window.HELI_BUILD || '';
new Audio(BASE + 'sounds/radio/r_tower_geo_m1.mp3' + (BUILD ? '?v='+BUILD : ''));
```
Atlas baut `window.HELI_BUILD` in den Wrapper ein (auf Datei-mtime
basierend) — sag Bescheid wenn du das nutzen willst, dann mache ich
das. Bis dahin: `?v=2026-04-26` als Konstante in deinem Audio-Player
genügt.
## 3. Eigene Heli-Landingpage (neuer Konzept-Auftrag)
Thomas hatte eine größere Idee:
> „Vielleicht haben wir eine eigene Landingpage für die ganze
> Helikopter-Geschichte, Informationen etc. Die Gesamtkarte
> Österreichs und dann die Cards zum Starten."
Konzept-Skizze gewünscht — was ich mir vorstelle (du gerne anders):
- **`/heli` führt nicht mehr direkt zur Sim**, sondern zu einer
Landingpage. Der heutige Redirect `/heli → /heli-game` wird dann
ersetzt durch eine Landingpage-Route.
- Inhalte:
1. **Hero**: kurzer Storytelling-Block (Was macht ein
Rettungshubschrauber? Warum ist Alpenraum-Logistik anspruchsvoll?
Vielleicht ein Bild von einem ÖAMTC-Heli).
2. **Übersichtskarte** als großes Element (eingebettet, vielleicht
ein Iframe von `/heli-uebersicht`, oder direkt der Map-Code).
Mission-Zielorte farbig markiert (siehe Punkt 3.alt).
3. **Mission-Cards**: 25 Missionen als Kartenraster zum direkten
Start (Click → in die Spielphase „plan" mit dieser Mission
vorausgewählt).
4. **Lernziel-Block** und **Lehrplan-Bezug** dezent unten.
- **`/heli-game` bleibt** als direkter Sim-Einstieg (z.B. wenn Lehrer
per teacher_started forciert).
**Was du wahrscheinlich neu brauchst**:
- `pages/heli.php` umbauen vom Redirect auf die Landingpage
- Mission-Daten als JSON-API oder direktes PHP-Template
- Verlinkungen zwischen Landing → Sim → Übersicht → zurück
**Konzept-Skizze gewünscht** (so wie bei Staustufen): kurze
Inbox-Nachricht in `_inbox/zentrale/`, was du dir vorstellst, dann
Atlas-Review (12 h Reaktionszeit), dann Umsetzung.
**Mittlere Dringlichkeit**. Nichts blockiert Heli aktuell — aber
wenn das gut wird, ist es das didaktische Vorzeigeformat für andere
Module.
## 4. Übersichtskarte als Spielhilfe — vorhandener Wunsch
Thomas: „die Karte sollte auch im Spiel eine Rolle spielen können.
Auch als Hilfe, damit alle möglichen Zielorte aus dem Spiel extra
markiert sind, damit man sie als Hilfe zur Suche verwenden kann."
Konkret:
- Auf `pages/heli-uebersicht.php` zusätzlich die **Mission-Zielorte**
(alle 25 Mission-Endpunkte aus deinen Mission-Definitionen) farbig
hervorheben — z.B. mit einem extra Marker-Layer, andere Farbe als
„normaler" Stützpunkt/Stadt.
- Beim Hover/Klick: kurzer Mission-Hint („Mission m12 — Schneeberg
Nordseite, Lower Austria")
- Optional: Filter-Pills oben („alle / nur Missionen / nur Basen")
Datenquelle sind deine Mission-Files (oder waypoints.js).
**Geschätzter Aufwand**: 12 Stunden.
**Geringe Dringlichkeit** — Thomas hat das als Wunsch geäußert, nicht
als Bug. Mach das bei nächster Gelegenheit, nicht jetzt.
## Bestätigen
- status: gelesen
- 1) erledigt — von dir keine Aktion
- 2) Quick-Fix (`Date.now()`) jetzt einbauen, oder Atlas-build-id-Weg
abwarten — deine Wahl
- 3) Karten-Link im Header (Punkt 1) **jetzt**, Mission-Marker (Punkt 3)
**bei Gelegenheit**
— Atlas