Netzwerkanalyse in eigenständige App ausgelagert
- Router-Import und Einbindung entfernt - Dashboard: Netzwerk-UI, CSS, JS-Referenzen entfernt - Netzwerk-Sidebar-Sektion und network-view entfernt
Dieser Commit ist enthalten in:
@@ -332,7 +332,6 @@ from routers.notifications import router as notifications_router
|
||||
from routers.feedback import router as feedback_router
|
||||
from routers.public_api import router as public_api_router
|
||||
from routers.chat import router as chat_router
|
||||
from routers.network_analysis import router as network_analysis_router
|
||||
from routers.tutorial import router as tutorial_router
|
||||
|
||||
app.include_router(auth_router)
|
||||
@@ -342,7 +341,6 @@ app.include_router(notifications_router)
|
||||
app.include_router(feedback_router)
|
||||
app.include_router(public_api_router)
|
||||
app.include_router(chat_router, prefix="/api/chat")
|
||||
app.include_router(network_analysis_router)
|
||||
app.include_router(tutorial_router)
|
||||
|
||||
|
||||
|
||||
@@ -14,8 +14,6 @@
|
||||
<link rel="stylesheet" href="/static/vendor/leaflet.css">
|
||||
<link rel="stylesheet" href="/static/vendor/MarkerCluster.css">
|
||||
<link rel="stylesheet" href="/static/vendor/MarkerCluster.Default.css">
|
||||
<link rel="stylesheet" href="/static/css/network.css?v=20260316a">
|
||||
<link rel="stylesheet" href="/static/css/network-cluster.css?v=20260322b">
|
||||
<link rel="stylesheet" href="/static/css/style.css?v=20260316k">
|
||||
</head>
|
||||
<body>
|
||||
@@ -71,7 +69,6 @@
|
||||
<nav class="sidebar" aria-label="Seitenleiste">
|
||||
<div class="sidebar-section">
|
||||
<button class="btn btn-primary btn-full btn-small" id="new-incident-btn" style="margin-bottom:6px;">+ Neuer Fall</button>
|
||||
<!-- <button class="btn btn-primary btn-full btn-small" id="new-network-btn" onclick="App.openNetworkModal()">+ Neue Netzwerkanalyse</button> -->
|
||||
</div>
|
||||
|
||||
<div class="sidebar-filter">
|
||||
@@ -99,12 +96,6 @@
|
||||
|
||||
|
||||
<div class="sidebar-section">
|
||||
<h2 class="sidebar-section-title collapsible" onclick="App.toggleSidebarSection('network-analyses-list')" role="button" tabindex="0" aria-expanded="true">
|
||||
<span class="sidebar-chevron" id="chevron-network-analyses-list" aria-hidden="true">▾</span>
|
||||
Netzwerkanalysen
|
||||
<span class="sidebar-section-count" id="count-network-analyses"></span>
|
||||
</h2>
|
||||
<div id="network-analyses-list" aria-live="polite"></div>
|
||||
</div>
|
||||
|
||||
<div class="sidebar-section">
|
||||
@@ -135,99 +126,7 @@
|
||||
|
||||
|
||||
<!-- Netzwerkanalyse View (hidden by default) -->
|
||||
<div id="network-view" style="display:none;">
|
||||
<!-- Header Strip -->
|
||||
<div class="network-header-strip">
|
||||
<div class="network-header-row1">
|
||||
<div class="network-header-left">
|
||||
<span class="incident-type-badge type-network">Netzwerk</span>
|
||||
<h2 class="network-header-title" id="network-title"></h2>
|
||||
<span class="network-update-badge" id="network-update-badge" style="display:none;" onclick="App.regenerateNetwork()">Aktualisierung verfügbar</span>
|
||||
</div>
|
||||
<div class="network-header-actions">
|
||||
<button class="btn btn-primary btn-small" onclick="App.regenerateNetwork()">Neu generieren</button>
|
||||
<div class="export-dropdown">
|
||||
<button class="btn btn-secondary btn-small" onclick="this.nextElementSibling.classList.toggle('show')" aria-haspopup="true">Exportieren ▾</button>
|
||||
<div class="export-dropdown-menu" role="menu">
|
||||
<button class="export-dropdown-item" role="menuitem" onclick="App.exportNetwork('json')">JSON</button>
|
||||
<button class="export-dropdown-item" role="menuitem" onclick="App.exportNetwork('csv')">CSV (Kantenliste)</button>
|
||||
<hr class="export-dropdown-divider" role="separator">
|
||||
<button class="export-dropdown-item" role="menuitem" onclick="App.exportNetwork('png')">PNG Screenshot</button>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-danger btn-small" onclick="App.deleteNetworkAnalysis()">Löschen</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="network-header-meta">
|
||||
<span id="network-entity-count"></span>
|
||||
<span id="network-relation-count"></span>
|
||||
<span id="network-last-generated"></span>
|
||||
<span id="network-incident-list-text" style="opacity:0.7;"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Progress Bar -->
|
||||
<div class="network-progress" id="network-progress-bar" style="display:none;">
|
||||
<div class="network-progress-steps">
|
||||
<div class="network-progress-step" data-step="entity_extraction">
|
||||
<div class="network-progress-step-dot"></div>
|
||||
<span>Entitäten</span>
|
||||
</div>
|
||||
<div class="network-progress-connector"></div>
|
||||
<div class="network-progress-step" data-step="relationship_extraction">
|
||||
<div class="network-progress-step-dot"></div>
|
||||
<span>Beziehungen</span>
|
||||
</div>
|
||||
<div class="network-progress-connector"></div>
|
||||
<div class="network-progress-step" data-step="correction">
|
||||
<div class="network-progress-step-dot"></div>
|
||||
<span>Korrekturen</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="network-progress-track">
|
||||
<div class="network-progress-fill" id="network-progress-fill"></div>
|
||||
</div>
|
||||
<div class="network-progress-label" id="network-progress-label">Wird verarbeitet...</div>
|
||||
</div>
|
||||
|
||||
<!-- Cluster Breadcrumb -->
|
||||
<div class="cluster-breadcrumb" id="cluster-breadcrumb" style="display:none;"></div>
|
||||
|
||||
<!-- Graph + Sidebar -->
|
||||
<div class="network-content">
|
||||
<div class="network-graph-area" id="network-graph-area">
|
||||
<div class="network-empty-state">
|
||||
<div class="network-empty-state-icon">☉</div>
|
||||
<div class="network-empty-state-text">Graph wird geladen...</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="network-sidebar">
|
||||
<div class="network-sidebar-section">
|
||||
<div class="network-sidebar-section-title">Suche</div>
|
||||
<input type="text" class="network-search-input" id="network-search" placeholder="Entität suchen...">
|
||||
</div>
|
||||
<div class="network-sidebar-section">
|
||||
<div class="network-sidebar-section-title">Typ-Filter</div>
|
||||
<div class="network-type-filters" id="network-type-filter-container"></div>
|
||||
</div>
|
||||
<div class="network-sidebar-section">
|
||||
<div class="network-sidebar-section-title">Min. Gewicht: <strong id="network-weight-value">1</strong></div>
|
||||
<input type="range" class="network-weight-slider" id="network-weight-slider" min="1" max="5" value="1" step="1">
|
||||
<div class="network-weight-labels"><span>1</span><span>5</span></div>
|
||||
</div>
|
||||
<div class="network-sidebar-section" style="border-bottom:none;">
|
||||
<button class="btn btn-secondary btn-small btn-full" onclick="App.resetNetworkView()" style="margin-bottom:6px;">Filter zurücksetzen</button>
|
||||
<button class="btn btn-secondary btn-small btn-full" onclick="App.isolateNetworkCluster()">Cluster isolieren</button>
|
||||
</div>
|
||||
<div class="network-detail-panel" id="network-detail-panel">
|
||||
<div class="network-detail-empty">Klicke auf einen Knoten für Details</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Tooltip -->
|
||||
<div class="network-tooltip" id="network-tooltip"></div>
|
||||
</div>
|
||||
|
||||
<!-- Lagebild (hidden by default) -->
|
||||
<div id="incident-view" style="display:none;">
|
||||
@@ -776,11 +675,7 @@
|
||||
<script src="/static/js/components.js?v=20260316d"></script>
|
||||
<script src="/static/js/layout.js?v=20260316b"></script>
|
||||
<script src="/static/js/app.js?v=20260316b"></script>
|
||||
<script src="/static/js/api_network.js?v=20260316a"></script>
|
||||
<script src="/static/js/network-graph.js?v=20260318b"></script>
|
||||
<script src="/static/js/cluster-data.js?v=20260322f"></script>
|
||||
<script src="/static/js/network-cluster.js?v=20260322f"></script>
|
||||
<script src="/static/js/app_network.js?v=20260322d"></script>
|
||||
<script src="/static/js/tutorial.js?v=20260316z"></script>
|
||||
<script src="/static/js/chat.js?v=20260316i"></script>
|
||||
<script>document.addEventListener("DOMContentLoaded",function(){Chat.init();Tutorial.init()});</script>
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren