OSINT Monitor Toggle entfernt — automatische Integration

Kein separater OSINT Monitor Layer mehr im Panel.
Bei Lage-Auswahl im Header passiert automatisch:
1. Monitor-Standorte werden auf dem Globus angezeigt (rote Punkte)
2. Katastrophen-Klick zeigt passende Monitor-Artikel zum Ort
3. Keine Lage = keine Monitor-Daten

Flow: Lage waehlen -> Monitor-Daten laden -> Katastrophen
zeigen ortsspezifische Artikel beim Klick.
Dieser Commit ist enthalten in:
Claude Dev
2026-03-24 13:50:20 +01:00
Ursprung 7738300dff
Commit be585590be
3 geänderte Dateien mit 19 neuen und 33 gelöschten Zeilen

Datei anzeigen

@@ -46,14 +46,7 @@
<aside id="layer-panel" class="layer-panel"> <aside id="layer-panel" class="layer-panel">
<h3 class="panel-title">LAYER</h3> <h3 class="panel-title">LAYER</h3>
<div class="panel-section"> <div class="panel-section">
<label class="layer-toggle">
<input type="checkbox" id="layer-monitor" title="OSINT-Daten aus dem AegisSight Monitor (geoparsete Nachrichtenstandorte)">
<span class="layer-dot dot-monitor"></span>
<span class="layer-name" title="Nachrichtenstandorte aus AegisSight Monitor Lagen">OSINT Monitor</span>
<span class="layer-count" id="count-monitor">-</span>
</label>
<div class="layer-loading" id="loading-monitor"></div>
<div class="layer-status" id="status-monitor"></div>
<label class="layer-toggle"> <label class="layer-toggle">
<input type="checkbox" id="layer-flights" title="Echtzeit-Flugverkehr weltweit (OpenSky Network, ~7.000 Flugzeuge, 15s Refresh)"> <input type="checkbox" id="layer-flights" title="Echtzeit-Flugverkehr weltweit (OpenSky Network, ~7.000 Flugzeuge, 15s Refresh)">
<span class="layer-dot dot-flights"></span> <span class="layer-dot dot-flights"></span>

Datei anzeigen

@@ -127,38 +127,29 @@ const Globe = {
_onLageChange(lageId) { _onLageChange(lageId) {
this._currentLageId = lageId ? parseInt(lageId) : null; this._currentLageId = lageId ? parseInt(lageId) : null;
if (typeof MonitorLayer === 'undefined') return;
if (typeof MonitorLayer !== 'undefined') {
if (lageId) { if (lageId) {
// Monitor-Layer automatisch starten wenn nicht aktiv if (!MonitorLayer._points) MonitorLayer.start(this.viewer);
if (!MonitorLayer._points) {
MonitorLayer.start(this.viewer);
var cb = document.getElementById('layer-monitor');
if (cb) cb.checked = true;
}
MonitorLayer._data = []; MonitorLayer._data = [];
MonitorLayer._incidents = []; MonitorLayer._incidents = [];
MonitorLayer._render(); MonitorLayer._render();
MonitorLayer._fetchForLage(lageId); MonitorLayer._fetchForLage(lageId);
} else { } else {
// Keine Lage: Monitor-Layer stoppen
MonitorLayer.stop(); MonitorLayer.stop();
var cb = document.getElementById('layer-monitor'); }
if (cb) cb.checked = false;
} }
// Katastrophen-Layer Monitor-Kontext aktualisieren // Katastrophen-Layer: Monitor-Daten aktualisieren
if (typeof DisastersLayer !== 'undefined' && DisastersLayer._dataSource) { if (typeof DisastersLayer !== 'undefined' && DisastersLayer._dataSource) {
DisastersLayer._fetchMonitorContext(); DisastersLayer._fetchMonitorContext();
} }
// Sidebar aktualisieren
if (typeof Sidebar !== 'undefined') Sidebar.update(); if (typeof Sidebar !== 'undefined') Sidebar.update();
}, },
_setupLayerToggles() { _setupLayerToggles() {
var toggles = { var toggles = {
'layer-monitor': function(on) { on ? MonitorLayer.start(Globe.viewer) : MonitorLayer.stop(); },
'layer-flights': function(on) { on ? FlightsLayer.start(Globe.viewer) : FlightsLayer.stop(); }, 'layer-flights': function(on) { on ? FlightsLayer.start(Globe.viewer) : FlightsLayer.stop(); },
'layer-ships': function(on) { on ? ShipsLayer.start(Globe.viewer) : ShipsLayer.stop(); }, 'layer-ships': function(on) { on ? ShipsLayer.start(Globe.viewer) : ShipsLayer.stop(); },
'layer-gdelt': function(on) { on ? GdeltLayer.start(Globe.viewer) : GdeltLayer.stop(); }, 'layer-gdelt': function(on) { on ? GdeltLayer.start(Globe.viewer) : GdeltLayer.stop(); },
@@ -186,9 +177,6 @@ const Globe = {
if (typeof QuakesLayer !== 'undefined' && QuakesLayer._count > 0) { if (typeof QuakesLayer !== 'undefined' && QuakesLayer._count > 0) {
document.getElementById('count-quakes').textContent = QuakesLayer._count.toLocaleString('de-DE'); document.getElementById('count-quakes').textContent = QuakesLayer._count.toLocaleString('de-DE');
} }
if (typeof MonitorLayer !== 'undefined' && MonitorLayer._count > 0) {
document.getElementById('count-monitor').textContent = MonitorLayer._count.toLocaleString('de-DE');
}
if (typeof SatellitesLayer !== 'undefined' && SatellitesLayer._count > 0) { if (typeof SatellitesLayer !== 'undefined' && SatellitesLayer._count > 0) {
document.getElementById('count-satellites').textContent = SatellitesLayer._count.toLocaleString('de-DE'); document.getElementById('count-satellites').textContent = SatellitesLayer._count.toLocaleString('de-DE');
} }

Datei anzeigen

@@ -28,10 +28,15 @@ const DisastersLayer = {
_fetchMonitorContext() { _fetchMonitorContext() {
var self = this; var self = this;
var lageId = (typeof Globe !== 'undefined' && Globe._currentLageId) ? Globe._currentLageId : ''; var lageId = (typeof Globe !== 'undefined') ? Globe._currentLageId : null;
fetch('/api/monitor-feed' + (lageId ? '?incident_id=' + lageId : '')) if (!lageId) { self._monitorData = null; return; }
fetch('/api/monitor-feed?incident_id=' + lageId)
.then(function(r) { return r.json(); }) .then(function(r) { return r.json(); })
.then(function(data) { self._monitorData = data; }) .then(function(data) {
self._monitorData = data;
// Katastrophen neu rendern mit Monitor-Kontext
if (self._dataSource) self._fetch();
})
.catch(function() {}); .catch(function() {});
}, },