Zusammenfassung als eigene Dashboard-Kachel

Research-Lagen: ZUSAMMENFASSUNG-Sektion wird aus dem Bericht
extrahiert und in eigener Kachel oberhalb des Recherchberichts
angezeigt. Der Recherchebericht zeigt den Rest ohne Dopplung.

- Neue Kachel mit gs-id="zusammenfassung" im GridStack
- Toggle-Button in der Layout-Leiste
- extractZusammenfassung() und renderZusammenfassung() in UI
- Adhoc/Live-Lagen: Kachel wird automatisch ausgeblendet
- Export nutzt weiterhin _extract_zusammenfassung() aus dem Backend
Dieser Commit ist enthalten in:
claude-dev
2026-04-11 21:12:28 +00:00
Ursprung 1bc8f66283
Commit c59ba4f4af
3 geänderte Dateien mit 65 neuen und 8 gelöschten Zeilen

Datei anzeigen

@@ -755,6 +755,7 @@ const App = {
el = document.getElementById("incident-title"); if (el) el.textContent = "";
el = document.getElementById("summary-content"); if (el) el.scrollTop = 0;
el = document.getElementById("summary-text"); if (el) el.innerHTML = "";
el = document.getElementById("zusammenfassung-text"); if (el) el.innerHTML = "";
el = document.getElementById("factcheck-filters"); if (el) el.innerHTML = "";
el = document.querySelector(".factcheck-list"); if (el) el.scrollTop = 0;
el = document.getElementById("factcheck-list"); if (el) el.innerHTML = "";
@@ -842,15 +843,28 @@ const App = {
deleteBtn.disabled = !isCreator;
deleteBtn.title = isCreator ? '' : `Nur ${(incident.created_by_username || '').split('@')[0]} kann diese Lage löschen`;
// Zusammenfassung mit Quellenverzeichnis
// Zusammenfassung-Kachel + Lagebild-Kachel aufteilen
const zusammenfassungText = document.getElementById('zusammenfassung-text');
const summaryText = document.getElementById('summary-text');
if (incident.summary) {
summaryText.innerHTML = UI.renderSummary(
incident.summary,
incident.sources_json,
incident.type
);
const zusammenfassungCard = document.getElementById('zusammenfassung-card');
if (incident.summary && incident.type === 'research') {
const { zusammenfassung, remaining } = UI.extractZusammenfassung(incident.summary);
if (zusammenfassung) {
if (zusammenfassungText) zusammenfassungText.innerHTML = UI.renderZusammenfassung(zusammenfassung);
if (zusammenfassungCard) zusammenfassungCard.style.display = '';
summaryText.innerHTML = UI.renderSummary(remaining, incident.sources_json, incident.type);
} else {
if (zusammenfassungText) zusammenfassungText.innerHTML = '<span style="color:var(--text-disabled);">Zusammenfassung wird beim n\u00e4chsten Refresh generiert.</span>';
if (zusammenfassungCard) zusammenfassungCard.style.display = '';
summaryText.innerHTML = UI.renderSummary(incident.summary, incident.sources_json, incident.type);
}
} else if (incident.summary) {
// Adhoc/Live: Keine Zusammenfassung-Kachel
if (zusammenfassungCard) zusammenfassungCard.style.display = 'none';
summaryText.innerHTML = UI.renderSummary(incident.summary, incident.sources_json, incident.type);
} else {
if (zusammenfassungCard) zusammenfassungCard.style.display = 'none';
summaryText.innerHTML = '<span style="color:var(--text-disabled);">Noch keine Zusammenfassung. Klicke auf "Aktualisieren" um die Recherche zu starten.</span>';
}