feat: UI-Highlight bei Chat-Antworten, Barrierefreiheits-Doku im Assistenten
Dieser Commit ist enthalten in:
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
In neuem Issue referenzieren
Einen Benutzer sperren