Dashboard: Telegram-Verknüpfung Button + Modal

- Session-Card-Menü: 'Telegram verknüpfen' zwischen Chat öffnen und Bearbeiten
- Button nur sichtbar wenn Telegram Bot konfiguriert (GET /api/telegram/status)
- Klick generiert 6-stelligen Link-Code (POST /api/telegram/link)
- Modal zeigt '/link CODE' mit Copy-Button, 5 Min gültig
- Neuer Backend-Endpoint GET /api/telegram/status (IsConfigured)
- API-Funktionen: apiTelegramStatus(), apiTelegramLink()
- Modal-CSS nach bestehendem .fe-overlay Pattern
This commit is contained in:
Meleki committed 2026-03-03 07:40:17 +01:00
1 parent 24d818f5d2
commit 7d237c866a
4 files changed
+161

No files matched your search

+74
View File
@@ -301,3 +301,77 @@
background: rgb(from var(--text) r g b / .15);
color: var(--text);
}
/* Telegram Link Modal */
.modal-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;
}
.telegram-link-modal {
background: var(--f2-bg);
border: var(--border-width) solid var(--f2-border);
border-radius: var(--border-radius);
width: 90vw;
max-width: 28em;
display: flex;
flex-direction: column;
overflow: hidden;
}
.telegram-link-modal .modal-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);
}
.telegram-link-modal .modal-header h3 {
margin: 0;
display: flex;
align-items: center;
gap: var(--badge-spacing);
}
.telegram-link-modal .modal-body {
padding: var(--box-padding);
display: flex;
flex-direction: column;
gap: var(--box-spacing);
}
.telegram-code-display {
display: flex;
align-items: center;
justify-content: center;
gap: var(--box-spacing);
padding: var(--box-padding);
background: var(--f1-bg);
border: var(--border-width) solid var(--f1-border);
border-radius: var(--border-radius);
}
.telegram-code-display code {
font-size: calc(var(--font-size) * 1.5);
font-weight: bold;
letter-spacing: .1em;
color: var(--primary);
user-select: all;
}
.telegram-code-hint {
opacity: var(--semi-transparent);
text-align: center;
display: flex;
align-items: center;
justify-content: center;
gap: var(--badge-spacing);
}