Files
eventmap/index.html
T
dapelza 2812e03530 Phase 2: Detailansicht
Modal, das sich bei Marker- oder Listen-Auswahl (state.selectedPlaceId)
oeffnet: Titelbild/Platzhalter, vollstaendige Beschreibung, Adresse,
Mini-Karte mit Positionsmarker, Oeffnungszeiten, Kosten, Altersempfehlung,
Ausstattung (inkl. klar markierter negativer Werte), Hinweise fuer
Familien, Website-Link. Navigation-Button zu OSM Directions. Loeschen ist
bereits voll funktional (mit Bestaetigung), Bearbeiten ist als Platzhalter
fuer Phase 3 markiert.

Neuer Helper isSafeHttpUrl() in dom.js: nur http/https als Link- oder
Bildquelle zulaessig, schuetzt vor javascript:-URLs in Fremddaten
(Vorbereitung fuer KI-JSON-Import). Rendering weiterhin ausschliesslich
ueber textContent/el(), kein innerHTML mit Place-Daten.
2026-07-24 11:32:32 +02:00

75 lines
2.9 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">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>EventMap Familienfreundliche Ausflugsziele</title>
<link rel="stylesheet" href="vendor/leaflet/leaflet.css" />
<link rel="stylesheet" href="vendor/leaflet.markercluster/MarkerCluster.css" />
<link rel="stylesheet" href="vendor/leaflet.markercluster/MarkerCluster.Default.css" />
<link rel="stylesheet" href="css/reset.css" />
<link rel="stylesheet" href="css/variables.css" />
<link rel="stylesheet" href="css/layout.css" />
<link rel="stylesheet" href="css/components.css" />
<link rel="stylesheet" href="css/detail.css" />
<link rel="stylesheet" href="css/responsive.css" />
</head>
<body>
<header class="app-header">
<h1 class="app-header__title">EventMap</h1>
<p class="app-header__subtitle">Familienfreundliche Ausflugsziele auf der Karte</p>
</header>
<p id="app-status" class="app-status" role="alert" hidden></p>
<main class="app-layout">
<section class="map-panel" aria-label="Karte">
<div class="map-panel__toolbar">
<button id="locate-btn" type="button" class="btn btn--secondary">
Meinen Standort verwenden
</button>
</div>
<div id="map" class="map-panel__map">
<p class="map-panel__loading">Karte wird geladen…</p>
</div>
</section>
<aside class="list-panel" aria-label="Ergebnisliste">
<h2 class="list-panel__title">Ausflugsziele</h2>
<div id="place-list" class="list-panel__content">
<p class="list-empty">Lade Ausflugsziele…</p>
</div>
</aside>
</main>
<div id="detail-modal" class="detail-modal" hidden></div>
<script src="vendor/leaflet/leaflet.js"></script>
<script src="vendor/leaflet.markercluster/leaflet.markercluster.js"></script>
<!-- Klassische Scripts statt ES-Module (import/export), damit die App
auch per Doppelklick/file:// ohne lokalen Server funktioniert.
Reihenfolge folgt der Abhängigkeitskette; alle Dateien hängen ihre
öffentliche API an das globale window.EventMap-Namespace-Objekt an. -->
<script src="js/utils/dom.js"></script>
<script src="js/utils/geo.js"></script>
<script src="js/utils/id.js"></script>
<script src="data/seed.js"></script>
<script src="js/config/constants.js"></script>
<script src="js/config/categories.js"></script>
<script src="js/models/schema.js"></script>
<script src="js/models/place.js"></script>
<script src="js/store/migrations.js"></script>
<script src="js/store/storage.js"></script>
<script src="js/store/store.js"></script>
<script src="js/map/geolocation.js"></script>
<script src="js/map/markers.js"></script>
<script src="js/map/mapController.js"></script>
<script src="js/ui/list.js"></script>
<script src="js/ui/detail.js"></script>
<script src="js/main.js"></script>
</body>
</html>