diff --git a/src/data_monitor.py b/src/data_monitor.py index 80df67f..29f1d9d 100644 --- a/src/data_monitor.py +++ b/src/data_monitor.py @@ -16,9 +16,9 @@ _cache: dict[str, tuple] = {} @router.get("/monitor-feed") -async def get_monitor_feed(incident_id: int = Query(None)): +async def get_monitor_feed(incident_id: int = Query(45)): """Holt OSINT-Daten vom AegisSight Monitor.""" - cache_key = f"monitor:{incident_id or 'all'}" + cache_key = f"monitor:{incident_id}" if cache_key in _cache and time.time() - _cache[cache_key][0] < 120: return _cache[cache_key][1] diff --git a/static/css/globe.css b/static/css/globe.css index a745abe..9c15d06 100644 --- a/static/css/globe.css +++ b/static/css/globe.css @@ -256,3 +256,159 @@ html, body { height: 100%; overflow: hidden; background: var(--bg-primary); colo line-height: 1.4; } .layer-toggle, .layer-name, .vmode-btn { position: relative; } + + +/* === Rechte Sidebar === */ +.sidebar-right { + position: fixed; + top: 44px; + right: 0; + bottom: 28px; + width: 280px; + z-index: 100; + display: flex; + transition: transform 0.3s ease; +} +.sidebar-right.collapsed { + transform: translateX(280px); +} +.sidebar-right.collapsed .sidebar-toggle { + transform: translateX(-32px); +} +.sidebar-toggle { + position: absolute; + left: -28px; + top: 12px; + width: 28px; + height: 36px; + background: var(--bg-panel); + border: 1px solid var(--border); + border-right: none; + border-radius: 6px 0 0 6px; + color: var(--text); + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + transition: all 0.2s; + z-index: 101; +} +.sidebar-toggle:hover { color: var(--accent); border-color: var(--accent); } + +.sidebar-inner { + flex: 1; + background: var(--bg-panel); + border-left: 1px solid var(--border); + backdrop-filter: blur(12px); + display: flex; + flex-direction: column; + overflow: hidden; +} +.sidebar-search-wrap { + padding: 10px; + border-bottom: 1px solid var(--border); +} +.sidebar-search { + width: 100%; + padding: 6px 10px; + background: rgba(255,255,255,0.05); + border: 1px solid var(--border); + border-radius: 4px; + color: var(--text); + font-family: var(--font-mono); + font-size: 11px; + outline: none; +} +.sidebar-search:focus { border-color: var(--accent); } +.sidebar-search::placeholder { color: var(--text-dim); } + +.sidebar-content { + flex: 1; + overflow-y: auto; + padding: 4px 0; +} +.sidebar-content::-webkit-scrollbar { width: 4px; } +.sidebar-content::-webkit-scrollbar-thumb { background: var(--border); border-radius: 2px; } + +/* Sections */ +.sb-section { border-bottom: 1px solid rgba(255,255,255,0.04); } +.sb-header { + display: flex; + align-items: center; + gap: 6px; + padding: 8px 12px; + cursor: pointer; + transition: background 0.15s; +} +.sb-header:hover { background: rgba(255,255,255,0.04); } +.sb-header-count { cursor: default; } +.sb-chevron { + font-size: 10px; + color: var(--text-dim); + transition: transform 0.2s; + width: 12px; + text-align: center; +} +.sb-title { + font-size: 10px; + font-weight: 700; + letter-spacing: 1px; + text-transform: uppercase; + color: var(--text); + flex: 1; +} +.sb-badge { + font-size: 9px; + color: var(--accent); + background: rgba(0,255,136,0.1); + padding: 1px 6px; + border-radius: 8px; + font-family: var(--font-mono); +} + +/* Items */ +.sb-list { padding: 0 4px 4px; } +.sb-item { + display: flex; + align-items: flex-start; + gap: 6px; + padding: 4px 8px; + border-radius: 3px; + cursor: pointer; + transition: background 0.15s; +} +.sb-item:hover { background: rgba(0,255,136,0.06); } +.sb-dot { + width: 6px; + height: 6px; + border-radius: 50%; + flex-shrink: 0; + margin-top: 4px; +} +.sb-item-text { min-width: 0; flex: 1; } +.sb-item-name { + font-size: 11px; + color: var(--text); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.sb-item-sub { + font-size: 9px; + color: var(--text-dim); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} +.sb-more { + font-size: 9px; + color: var(--text-dim); + padding: 4px 8px; + text-align: center; +} +.sb-empty { + padding: 20px; + text-align: center; + font-size: 11px; + color: var(--text-dim); +} diff --git a/static/index.html b/static/index.html index 24b710a..6185aa2 100644 --- a/static/index.html +++ b/static/index.html @@ -126,6 +126,22 @@ + + + +
@@ -145,6 +161,7 @@ +