// Einstiegspunkt der Anwendung: initialisiert Store, Karte und Liste. (function () { const { initStore } = EventMap.store; const { initMap, centerOnCoords, requestUserLocation, startLocationPicking, stopLocationPicking, isPickingLocation, } = EventMap.map; const { initList, initDetail, initForm, initManualLocationForm, initFilterPanel, initPromptGenerator, initImport, } = EventMap.ui; function showFatalError(message) { const status = document.getElementById('app-status'); const statusText = document.getElementById('app-status-text'); if (!status || !statusText) return; statusText.textContent = message; status.hidden = false; } function hideStatus() { const status = document.getElementById('app-status'); const statusText = document.getElementById('app-status-text'); if (!status || !statusText) return; status.hidden = true; statusText.textContent = ''; } // Verdrahtet den Schließen-Button der Statusmeldung unabhängig vom // restlichen Bootstrap-Ablauf, damit er auch dann funktioniert, wenn // bootstrap() selbst fehlschlägt und showFatalError() aus dem // catch-Handler heraus aufgerufen wird (siehe Gitea Issue #1: die // Fehlermeldung war bisher dauerhaft nicht schließbar). function setupStatusClose() { const closeBtn = document.getElementById('app-status-close'); if (!closeBtn) return; closeBtn.addEventListener('click', hideStatus); } // Aktionen-Menü im Header (Hamburger): fasst die frueher direkt auf der // Karte liegenden Buttons zusammen, damit sie nicht mehr mit dem // Leaflet-Zoom-Regler kollidieren und auf dem Smartphone nicht die // Karte zupflastern. function setupMenuToggle() { const toggleBtn = document.getElementById('menu-toggle-btn'); const menu = document.getElementById('app-menu'); if (!toggleBtn || !menu) return; function closeMenu() { menu.hidden = true; toggleBtn.setAttribute('aria-expanded', 'false'); } function openMenu() { menu.hidden = false; toggleBtn.setAttribute('aria-expanded', 'true'); } toggleBtn.addEventListener('click', () => { if (menu.hidden) { openMenu(); } else { closeMenu(); } }); // Menü nach Klick auf eine der enthaltenen Aktionen automatisch // schließen (die jeweilige Aktion selbst wurde durch den eigenen // Klick-Handler des Buttons bereits vorher ausgelöst, da Events erst // beim Ziel-Element und danach erst am umschließenden