feat(dashboard): klickbare Session-Cards + UI-Verbesserungen
- Session-Cards mit Agent sind klickbar (navigiert zum Chat)
- Card-Menü bleibt nutzbar via pointer-events Logik
- Menü-Reihenfolge: Bearbeiten vor Chat öffnen
- Session-Beschreibung: textarea → input (einzeilig)
- Globale Link-Styles (a { color: var(--primary) })
This commit is contained in:
1 parent
3ef78b5eb1
commit
9140c4fcc7
4 files changed
+24
-3
No files matched your search
@@ -109,3 +109,12 @@ textarea {
|
|||||||
50% { rotate: 180deg; }
|
50% { rotate: 180deg; }
|
||||||
100% { rotate: 360deg; }
|
100% { rotate: 360deg; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a {
|
||||||
|
color: var(--primary);
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
@@ -69,10 +69,15 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.card.clickable {
|
.card.clickable {
|
||||||
|
pointer-events: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card.clickable:not(:has(.card-menu-dropdown:not([hidden]))) {
|
||||||
|
pointer-events: unset;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card.clickable:hover {
|
.card.clickable:not(:has(.card-menu-dropdown:not([hidden]))):hover {
|
||||||
border-color: var(--primary);
|
border-color: var(--primary);
|
||||||
filter: var(--hover-filter);
|
filter: var(--hover-filter);
|
||||||
}
|
}
|
||||||
@@ -185,6 +190,7 @@
|
|||||||
padding-block: var(--badge-spacing);
|
padding-block: var(--badge-spacing);
|
||||||
z-index: 1000;
|
z-index: 1000;
|
||||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||||
|
pointer-events: all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.card-menu-dropdown[hidden] {
|
.card-menu-dropdown[hidden] {
|
||||||
|
|||||||
+1
-1
@@ -109,7 +109,7 @@
|
|||||||
<label>Name</label>
|
<label>Name</label>
|
||||||
<input type="text" id="sessionName" placeholder="Name der Session">
|
<input type="text" id="sessionName" placeholder="Name der Session">
|
||||||
<label>Beschreibung</label>
|
<label>Beschreibung</label>
|
||||||
<textarea id="sessionDescription" rows="3" placeholder="Beschreibung (optional)"></textarea>
|
<input id="sessionDescription" placeholder="Kurze Beschreibung (optional)">
|
||||||
<label>Agent</label>
|
<label>Agent</label>
|
||||||
<select id="agentSelect"></select>
|
<select id="agentSelect"></select>
|
||||||
<label>Workspace</label>
|
<label>Workspace</label>
|
||||||
|
|||||||
@@ -60,8 +60,8 @@ registerPage('dashboard', {
|
|||||||
<div class="card-menu">
|
<div class="card-menu">
|
||||||
<button class="card-menu-trigger icon-btn"><i class="fa fa-ellipsis-v"></i></button>
|
<button class="card-menu-trigger icon-btn"><i class="fa fa-ellipsis-v"></i></button>
|
||||||
<div class="card-menu-dropdown" hidden>
|
<div class="card-menu-dropdown" hidden>
|
||||||
<button class="card-menu-item" data-action="chat"><i class="fa fa-comment"></i> Chat öffnen</button>
|
|
||||||
<button class="card-menu-item" data-action="edit"><i class="fa fa-pencil"></i> Bearbeiten</button>
|
<button class="card-menu-item" data-action="edit"><i class="fa fa-pencil"></i> Bearbeiten</button>
|
||||||
|
<button class="card-menu-item" data-action="chat"><i class="fa fa-comment"></i> Chat öffnen</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -79,6 +79,12 @@ registerPage('dashboard', {
|
|||||||
chatBtn.title = 'Kein Agent zugewiesen';
|
chatBtn.title = 'Kein Agent zugewiesen';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Card selbst klickbar wenn Agent zugewiesen
|
||||||
|
if (agent) {
|
||||||
|
card.classList.add('clickable');
|
||||||
|
card.addEventListener('click', () => navigateTo('chat', { id: s.sessionId }));
|
||||||
|
}
|
||||||
|
|
||||||
const menuTrigger = card.querySelector('.card-menu-trigger');
|
const menuTrigger = card.querySelector('.card-menu-trigger');
|
||||||
const menuDropdown = card.querySelector('.card-menu-dropdown');
|
const menuDropdown = card.querySelector('.card-menu-dropdown');
|
||||||
menuTrigger.addEventListener('click', (e) => {
|
menuTrigger.addEventListener('click', (e) => {
|
||||||
|
|||||||
Reference in new issue
Block a user