From 92c20402eb31f17823c78574559cdbf31ea48784 Mon Sep 17 00:00:00 2001 From: Meleki Date: Fri, 6 Mar 2026 14:01:27 +0100 Subject: [PATCH] refactor: Agent-Auswahl in Session-Form als Card + Picker-Modal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - buildAgentCard() Helper in ui.js erstellt (wiederverwendbar für Dashboard + Picker) - Session-Form: select-Dropdown durch klickbare Agent-Card ersetzt - Agent-Picker-Modal zeigt alle Agents mit identischen Cards wie am Dashboard - Dashboard refactored: nutzt buildAgentCard() statt dupliziertem Inline-HTML - Kein duplizierter Code mehr für Agent-Card-Rendering (Badges, Skills, Avatar) --- wwwroot/css/form.css | 98 +++++++++++++++++++++++++++++ wwwroot/index.html | 5 +- wwwroot/js/pages/dashboard.js | 39 ++---------- wwwroot/js/pages/session-page.js | 105 ++++++++++++++++++++++++++++--- wwwroot/js/ui.js | 47 ++++++++++++++ 5 files changed, 252 insertions(+), 42 deletions(-) diff --git a/wwwroot/css/form.css b/wwwroot/css/form.css index 57430c1..a0ec857 100644 --- a/wwwroot/css/form.css +++ b/wwwroot/css/form.css @@ -297,6 +297,104 @@ label.skill-item { margin-left: auto; } +/* ── Agent Select Card (in Session-Formular) ── */ + +.agent-select-card { + display: flex; + align-items: center; + gap: var(--box-spacing); + padding: var(--box-padding); + background: var(--f3-bg); + border: var(--border-width) solid var(--f3-border); + border-radius: var(--border-radius); + cursor: pointer; + transition: border-color var(--transition-duration); +} + +.agent-select-card:hover { + border-color: var(--primary); +} + +.agent-select-card .card-image { + flex: 0 0 4em; + height: 4em; +} + +.agent-select-empty { + opacity: var(--semi-transparent); + display: flex; + align-items: center; + gap: var(--badge-spacing); +} + +.agent-select-change { + margin-left: auto; + opacity: var(--semi-transparent); + flex-shrink: 0; + transition: opacity var(--transition-duration); +} + +.agent-select-card:hover .agent-select-change { + opacity: 1; + color: var(--primary); +} + +/* ── Agent Picker Modal ── */ + +.agent-picker-overlay { + position: fixed; + inset: 0; + background: rgb(from var(--f1-bg) r g b / var(--semi-transparent)); + display: flex; + align-items: center; + justify-content: center; + z-index: 1000; +} + +.agent-picker-modal { + background: var(--f2-bg); + border: var(--border-width) solid var(--f2-border); + border-radius: var(--border-radius); + width: 90vw; + max-width: var(--modal-width); + max-height: 80vh; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.agent-picker-header { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--box-padding); + border-bottom: var(--border-width) solid var(--f1-border); + background: var(--f1-bg); + font-weight: bold; +} + +.agent-picker-body { + padding: var(--badge-spacing); + overflow-y: auto; + display: flex; + flex-direction: column; + gap: var(--badge-spacing); +} + +.agent-picker-item { + cursor: pointer; + transition: border-color var(--transition-duration), filter var(--transition-duration); +} + +.agent-picker-item:hover { + border-color: var(--primary); + filter: var(--hover-filter); +} + +.agent-picker-item.selected { + border-color: var(--primary); +} + /* ── Profile ── */ .profile-message { diff --git a/wwwroot/index.html b/wwwroot/index.html index 565b9d6..e2121ec 100644 --- a/wwwroot/index.html +++ b/wwwroot/index.html @@ -104,7 +104,10 @@ - +
+
Kein Agent ausgewählt
+
+
Weitere Einstellungen