Neueste Entwicklungen: Kachel fuer adhoc-Lagen
- DB-Migration: Spalte latest_developments (TEXT) in incidents - Analyzer: neuer Prompt LATEST_DEVELOPMENTS_PROMPT_TEMPLATE und Methode generate_latest_developments() liefert chronologische Bullet-Liste (max. 8, neueste oben, Zeitstempel DD.MM. HH:MM) - Orchestrator: nach Analyse+Faktencheck ein Extra-Schritt nur fuer incident_type=adhoc, der die neue Kachel fortschreibt - Analyzer-Prompts (Erst- und inkrementell): erzeugen KEINE Zusammenfassung-Sektion mehr im Lagebild (vermeidet Duplikat mit der neuen Kachel) - models.IncidentResponse um latest_developments erweitert - Frontend: Rendering der Kachel in app.js
Dieser Commit ist enthalten in:
@@ -850,25 +850,43 @@ const App = {
|
||||
const zusammenfassungText = document.getElementById('zusammenfassung-text');
|
||||
const summaryText = document.getElementById('summary-text');
|
||||
const zusammenfassungCard = document.getElementById('zusammenfassung-card');
|
||||
const zusammenfassungTitle = zusammenfassungCard ? zusammenfassungCard.querySelector('.card-title') : null;
|
||||
|
||||
if (incident.summary && incident.type === 'research') {
|
||||
const { zusammenfassung, remaining } = UI.extractZusammenfassung(incident.summary);
|
||||
if (zusammenfassung) {
|
||||
if (zusammenfassungText) zusammenfassungText.innerHTML = UI.renderZusammenfassung(zusammenfassung, incident.sources_json);
|
||||
if (zusammenfassungCard) zusammenfassungCard.style.display = '';
|
||||
summaryText.innerHTML = UI.renderSummary(remaining, incident.sources_json, incident.type);
|
||||
if (incident.type === 'research') {
|
||||
// Recherche: ZUSAMMENFASSUNG-Sektion aus Briefing extrahieren
|
||||
if (zusammenfassungTitle) zusammenfassungTitle.textContent = 'Zusammenfassung';
|
||||
if (zusammenfassungTitle) zusammenfassungTitle.setAttribute('onclick', "openContentModal('Zusammenfassung', 'zusammenfassung-content')");
|
||||
if (incident.summary) {
|
||||
const { zusammenfassung, remaining } = UI.extractZusammenfassung(incident.summary);
|
||||
if (zusammenfassung) {
|
||||
if (zusammenfassungText) zusammenfassungText.innerHTML = UI.renderZusammenfassung(zusammenfassung, incident.sources_json);
|
||||
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 (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);
|
||||
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>';
|
||||
}
|
||||
} 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>';
|
||||
// Live-Monitoring (adhoc): Kachel zeigt "Neueste Entwicklungen" (max 8 Bullets mit Zeitstempel)
|
||||
if (zusammenfassungTitle) zusammenfassungTitle.textContent = 'Neueste Entwicklungen';
|
||||
if (zusammenfassungTitle) zusammenfassungTitle.setAttribute('onclick', "openContentModal('Neueste Entwicklungen', 'zusammenfassung-content')");
|
||||
if (zusammenfassungCard) zusammenfassungCard.style.display = '';
|
||||
const devText = (incident.latest_developments || '').trim();
|
||||
if (devText) {
|
||||
if (zusammenfassungText) zusammenfassungText.innerHTML = UI.renderZusammenfassung(devText, incident.sources_json);
|
||||
} else if (zusammenfassungText) {
|
||||
zusammenfassungText.innerHTML = '<span style="color:var(--text-disabled);">Noch keine Entwicklungen erfasst. Wird beim n\u00e4chsten Refresh generiert.</span>';
|
||||
}
|
||||
if (incident.summary) {
|
||||
summaryText.innerHTML = UI.renderSummary(incident.summary, incident.sources_json, incident.type);
|
||||
} else {
|
||||
summaryText.innerHTML = '<span style="color:var(--text-disabled);">Noch kein Lagebild. Klicke auf "Aktualisieren" um die Recherche zu starten.</span>';
|
||||
}
|
||||
}
|
||||
|
||||
// Meta (im Header-Strip) — relative Zeitangabe mit vollem Datum als Tooltip
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren