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:
@@ -695,6 +695,35 @@ const UI = {
|
||||
/**
|
||||
* Zusammenfassung mit Inline-Zitaten und Quellenverzeichnis rendern.
|
||||
*/
|
||||
/**
|
||||
* Extrahiert die ZUSAMMENFASSUNG-Sektion aus einem Research-Briefing.
|
||||
* Returns: { zusammenfassung: string|null, remaining: string }
|
||||
*/
|
||||
extractZusammenfassung(summary) {
|
||||
if (!summary) return { zusammenfassung: null, remaining: summary };
|
||||
const pattern = /## ZUSAMMENFASSUNG\s*\n(.*?)(?=\n## |$)/s;
|
||||
const match = summary.match(pattern);
|
||||
if (!match) return { zusammenfassung: null, remaining: summary };
|
||||
const zusammenfassung = match[1].trim();
|
||||
const remaining = summary.substring(0, match.index) + summary.substring(match.index + match[0].length);
|
||||
return { zusammenfassung, remaining: remaining.trim() };
|
||||
},
|
||||
|
||||
/**
|
||||
* Rendert die Zusammenfassung als HTML (Bullet Points).
|
||||
*/
|
||||
renderZusammenfassung(text) {
|
||||
if (!text) return '<span style="color:var(--text-disabled);">Noch keine Zusammenfassung.</span>';
|
||||
let html = this.escape(text);
|
||||
// Bullet points
|
||||
html = html.replace(/^- (.+)$/gm, '<li>$1</li>');
|
||||
html = html.replace(/(<li>.*<\/li>\n?)+/gs, '<ul style="margin:4px 0 4px 18px;line-height:1.7;">$&</ul>');
|
||||
// Zeilenumbrueche
|
||||
html = html.replace(/\n(?!<)/g, '<br>');
|
||||
html = html.replace(/(<br>){2,}/g, '<br>');
|
||||
return html;
|
||||
},
|
||||
|
||||
renderSummary(summary, sourcesJson, incidentType) {
|
||||
if (!summary) return '<span style="color:var(--text-tertiary);">Noch keine Zusammenfassung.</span>';
|
||||
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren