Lage-Auswahl im Header + dynamischer Monitor-Feed
Dropdown in der Top-Leiste zeigt alle oeffentlichen Lagen. [L] = Live-Monitoring, [R] = Recherche. Immer nur eine Lage aktiv. Bei Auswahl: - OSINT Monitor Layer zeigt nur Daten dieser Lage - Klick auf Katastrophen zeigt Summary dieser Lage - Sidebar zeigt Punkte dieser Lage Ohne Auswahl: kein Monitor-Overlay.
Dieser Commit ist enthalten in:
@@ -5,6 +5,7 @@ const Globe = {
|
||||
viewer: null,
|
||||
layers: {},
|
||||
_statsInterval: null,
|
||||
_currentLageId: null,
|
||||
_labelsLayer: null,
|
||||
|
||||
init() {
|
||||
@@ -83,6 +84,7 @@ const Globe = {
|
||||
this._toggleLabels(true);
|
||||
if (typeof VisualModes !== 'undefined') VisualModes.init();
|
||||
if (typeof Sidebar !== 'undefined') Sidebar.init();
|
||||
this._loadLagen();
|
||||
document.getElementById('bottom-stats').textContent = 'Globe initialisiert — Lade Daten...';
|
||||
},
|
||||
|
||||
@@ -107,6 +109,35 @@ const Globe = {
|
||||
}
|
||||
},
|
||||
|
||||
_loadLagen() {
|
||||
var select = document.getElementById('lage-select');
|
||||
if (!select) return;
|
||||
fetch('/api/monitor-incidents')
|
||||
.then(function(r) { return r.json(); })
|
||||
.then(function(lagen) {
|
||||
var html = '<option value="">-- Lage waehlen --</option>';
|
||||
(lagen || []).forEach(function(l) {
|
||||
var typeLabel = l.type === 'research' ? '[R] ' : '[L] ';
|
||||
html += '<option value="' + l.id + '">' + typeLabel + l.title + '</option>';
|
||||
});
|
||||
select.innerHTML = html;
|
||||
})
|
||||
.catch(function() {});
|
||||
},
|
||||
|
||||
_onLageChange(lageId) {
|
||||
this._currentLageId = lageId ? parseInt(lageId) : null;
|
||||
// Monitor-Layer aktualisieren wenn aktiv
|
||||
if (typeof MonitorLayer !== 'undefined' && MonitorLayer._points) {
|
||||
MonitorLayer._data = [];
|
||||
MonitorLayer._incidents = [];
|
||||
MonitorLayer._render();
|
||||
if (lageId) MonitorLayer._fetchForLage(lageId);
|
||||
}
|
||||
// Sidebar aktualisieren
|
||||
if (typeof Sidebar !== 'undefined') Sidebar.update();
|
||||
},
|
||||
|
||||
_setupLayerToggles() {
|
||||
var toggles = {
|
||||
'layer-monitor': function(on) { on ? MonitorLayer.start(Globe.viewer) : MonitorLayer.stop(); },
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren