Telegram: Webhook-Verwaltung in Einstellungen-Seite

- Backend: DELETE /api/telegram/webhook Endpoint + TelegramService.DeleteWebhook()
- api.js: apiTelegramWebhookInfo(), apiTelegramRegisterWebhook(), apiTelegramDeleteWebhook()
- Settings-Page: Neue 'Telegram Bot' Section (nur für Admins, nur wenn konfiguriert)
  - Status abrufen: Webhook-URL, ausstehende Updates, letzter Fehler, Aktiv-Badge
  - Webhook registrieren: prompt() für Base-URL, POST an Telegram API
  - Webhook entfernen: Bestätigungsdialog + DELETE
- CSS: .telegram-status-box, .tg-status-row, .tg-label, .tg-value, .tg-badge
This commit is contained in:
Meleki committed 2026-03-03 09:06:22 +01:00
1 parent 7d237c866a
commit 4ac042e512
6 files changed
+232 -1

No files matched your search

+31
View File
@@ -284,6 +284,37 @@
</div>
</div>
</section>
<section id="settingsTelegramSection" class="settings-section" style="display:none">
<h2>Telegram Bot</h2>
<div class="setting-row">
<div class="setting-info">
<label>Status</label>
<span class="setting-hint">Verbindung zum Telegram Bot und Webhook-URL</span>
</div>
<div class="setting-control">
<button id="settingsTelegramStatusBtn">Status abrufen</button>
</div>
</div>
<div id="settingsTelegramStatusBox" class="telegram-status-box" style="display:none"></div>
<div class="setting-row">
<div class="setting-info">
<label>Webhook registrieren</label>
<span class="setting-hint">Registriert den Webhook bei Telegram (einmalig nach dem Deploy nötig)</span>
</div>
<div class="setting-control">
<button id="settingsTelegramRegisterBtn">Registrieren</button>
</div>
</div>
<div class="setting-row">
<div class="setting-info">
<label>Webhook entfernen</label>
<span class="setting-hint">Deregistriert den Webhook bei Telegram – Bot empfängt dann keine Updates mehr</span>
</div>
<div class="setting-control">
<button id="settingsTelegramDeleteBtn" class="danger-btn">Webhook entfernen</button>
</div>
</div>
</section>
<section class="settings-section settings-reset">
<button id="settingsResetBtn" class="danger-btn">Alle Einstellungen zurücksetzen</button>
</section>