Internationale Quellen, Sichtbarkeit, Faktencheck: Jeder Zustand beginnt in eigener Zeile
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CSS-only Tooltip-System (.info-icon mit data-tooltip Attribut)
- Modal: Art der Lage, Internationale Quellen, Telegram, Sichtbarkeit, Aufbewahrung
- Dashboard: Faktencheck-Kachel (erklärt Status-Kategorien)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- CSS: min-height:0 und height:100% für Flex-Container
- JS: Höhe wird immer explizit aus der Gridstack-Kachel berechnet,
nicht nur als Fallback unter 50px
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Neuer Button zwischen Reload und Schließen. Toggled zwischen
normalem Fenster und Vollbild. Icon wechselt zwischen Expand/Collapse.
Schließen und Reset beenden Vollbild automatisch.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Reload-Button (kreisförmiger Pfeil) neben dem Schließen-Button.
Wird erst sichtbar nach der ersten Nachricht. Setzt Konversation
zurück, leert den Verlauf und zeigt die Begrüßung erneut.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Zeigt "X Artikel aus Y Quellen" direkt im Header der Quellenübersicht-Kachel,
sodass die Info auch ohne Aufklappen sichtbar ist.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Neue Tabelle user_excluded_domains für benutzerspezifische Ausschlüsse
- Domain-Ausschlüsse wirken nur für den jeweiligen User, nicht org-weit
- user_id wird durch die gesamte Pipeline geschleust (Orchestrator → Researcher → RSS-Parser)
- Grundquellen (is_global) können nicht mehr bearbeitet/gelöscht werden im Frontend
- Grundquelle-Badge bei globalen Quellen statt Edit/Delete-Buttons
- Filter Von mir ausgeschlossen im Quellen-Modal
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Klick auf Email öffnet Dropdown mit Organisation und Lizenzinfo
- Org-Name und Lizenz-Badge nicht mehr direkt sichtbar im Header
- Dropdown schliesst bei Klick ausserhalb
- Barrierefreie ARIA-Attribute
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
CSS zoom statt font-size auf Root, da alle Schriftgrößen in px definiert
sind und font-size:115% auf :root keine Wirkung hatte.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Frontend-Dateien auf Zustand vor i18n zurückgesetzt.
lang.js entfernt, CSP bereinigt. Backend-Umlaut-Fix bleibt erhalten.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add LangManager with 270+ translation keys, anti-flicker lang detection
- Replace all hardcoded German strings in app.js, components.js, dashboard.html, index.html
- Dynamic getter properties for fact-check labels, category badges
- Language-aware map tiles (DE/EN OSM servers), CSP updated for tile.openstreetmap.org
- Lang switcher in header bar and login page
- Locale-aware date formatting, translateApiError for backend messages
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Leaflet JS/CSS + MarkerCluster lokal in /static/vendor/ (kein CDN)
- Marker-Images lokal gehostet
- Container-Hoehe wird per JS berechnet falls gridstack 0px liefert
- gridstack karte-Item: display flex auf item-content
- Kein CDN-Abhaengigkeit mehr fuer Kartenfeature
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- map-card: position absolute + inset 0 (zuverlaessig in gridstack)
- map-container: min-height 0 statt 200px (flex-Item braucht das)
- map-empty: position absolute statt flex-basiert
- invalidateSize mit mehreren Retries (100/300/800ms)
- Bounds werden nach invalidateSize erneut gesetzt
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Neues Geoparsing-Modul (spaCy NER + geonamescache/Nominatim)
- article_locations-Tabelle mit Migration
- Pipeline-Integration nach Artikel-Speicherung
- API-Endpunkt GET /incidents/{id}/locations
- Leaflet.js + MarkerCluster im Dashboard-Grid
- Theme-aware Kartenkacheln (CartoDB dark / OSM light)
- Gold-Akzent MarkerCluster, Popup mit Artikelliste
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>