feat: UI-Highlight bei Chat-Antworten, Barrierefreiheits-Doku im Assistenten

Dieser Commit ist enthalten in:
Claude Dev
2026-03-15 23:31:09 +01:00
Ursprung d8f8fe4c86
Commit 7d127688d1
3 geänderte Dateien mit 71 neuen und 0 gelöschten Zeilen

Datei anzeigen

@@ -178,6 +178,7 @@ const Chat = {
container.scrollTop = container.scrollHeight;
} else {
bubble.scrollIntoView({ behavior: 'smooth', block: 'start' });
this._highlightUI(text);
}
},
@@ -219,4 +220,51 @@ const Chat = {
}
return await resp.json();
},
// -----------------------------------------------------------------------
// UI-Highlight: Bedienelemente im Dashboard hervorheben wenn im Chat erwaehnt
// -----------------------------------------------------------------------
_UI_HIGHLIGHTS: [
{ keywords: ['neue lage', 'lage erstellen', 'lage anlegen', 'recherche erstellen'], selector: '#new-incident-btn' },
{ keywords: ['theme', 'farbschema', 'hell', 'dunkel', 'dark mode', 'light mode', 'design wechseln'], selector: '#theme-toggle' },
{ keywords: ['barrierefreiheit', 'accessibility', 'kontrast', 'schrift', 'focus-anzeige', 'animationen'], selector: '#a11y-btn' },
{ keywords: ['abmelden', 'logout', 'ausloggen'], selector: '#logout-btn' },
{ keywords: ['benachrichtigung', 'glocke', 'abo', 'abonnieren'], selector: '#notification-btn' },
{ keywords: ['aktualisieren', 'refresh'], selector: '#refresh-btn' },
{ keywords: ['export', 'lagebericht'], selector: '#export-btn' },
{ keywords: ['faktencheck', 'factcheck', 'fakten'], selector: '.factcheck-section, [data-tab="factchecks"]' },
{ keywords: ['karte', 'kartenansicht', 'geoparsing', 'map'], selector: '#map-container, .map-card' },
{ keywords: ['quellen', 'source'], selector: '.sources-section, [data-tab="sources"]' },
{ keywords: ['sichtbarkeit', 'privat', 'oeffentlich'], selector: '#incident-visibility, .visibility-toggle' },
{ keywords: ['filter', 'eigene', 'alle lagen'], selector: '.sidebar-filter' },
],
_highlightUI(text) {
if (!text) return;
var lower = text.toLowerCase();
var highlighted = new Set();
for (var i = 0; i < this._UI_HIGHLIGHTS.length; i++) {
var entry = this._UI_HIGHLIGHTS[i];
for (var k = 0; k < entry.keywords.length; k++) {
if (lower.indexOf(entry.keywords[k]) !== -1) {
var selectors = entry.selector.split(',');
for (var s = 0; s < selectors.length; s++) {
var sel = selectors[s].trim();
if (highlighted.has(sel)) continue;
var el = document.querySelector(sel);
if (el) {
highlighted.add(sel);
el.classList.add('chat-ui-highlight');
(function(element) {
setTimeout(function() {
element.classList.remove('chat-ui-highlight');
}, 3000);
})(el);
}
}
break;
}
}
}
},
};