refactor: Agent-Auswahl in Session-Form als Card + Picker-Modal

- 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)
This commit is contained in:
Meleki committed 2026-03-06 14:01:27 +01:00
1 parent a82540e7db
commit 92c20402eb
5 files changed
+252 -42

No files matched your search

+98
View File
@@ -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 {