Send through a bot token so messages can be deleted again

Incoming webhooks return no message id, so nothing can be removed later.
Settings now take a bot token plus channel, chat.postMessage records channel
and timestamp on the run, and the history carries a delete button per
message. The webhook stays as a fallback and is marked as not deletable.
This commit is contained in:
Matthias G
2026-08-03 12:45:04 +02:00
parent 6c78acdd6d
commit 81d0489c78
16 changed files with 2450 additions and 42 deletions
+27 -6
View File
@@ -289,7 +289,13 @@
"reportSent": "Der Bericht ist raus.",
"reportEmpty": "In den letzten sieben Tagen wurde nichts veröffentlicht, deshalb ging keine Nachricht raus.",
"reportNoWebhook": "Es ist kein Webhook hinterlegt.",
"reportRejected": "Slack hat die Nachricht abgelehnt."
"reportRejected": "Slack hat die Nachricht abgelehnt.",
"messageDeleted": "Die Nachricht ist in Slack gelöscht.",
"runUnknown": "Diesen Lauf gibt es nicht.",
"runNotDeletable": "Dieser Lauf ging über den Webhook, dafür gibt es keine Nachrichtenkennung.",
"runNoToken": "Ohne Bot-Token lässt sich in Slack nichts löschen.",
"runDeleteFailed": "Slack hat das Löschen abgelehnt.",
"tokenInvalid": "Ein Bot-Token beginnt mit xoxb oder xoxp."
},
"errors": {
"nameRequired": "Trag einen Namen ein.",
@@ -726,7 +732,8 @@
"total": "Einträge",
"projects": "Projekte",
"result": "Ergebnis",
"trigger": "Ausgelöst von"
"trigger": "Ausgelöst von",
"message": "Nachricht"
},
"results": {
"sent": "Verschickt",
@@ -736,16 +743,30 @@
},
"fields": {
"webhook": "Incoming Webhook",
"includeInternal": "Interne Beiträge mitschicken"
"includeInternal": "Interne Beiträge mitschicken",
"botToken": "Bot-Token",
"channel": "Kanal"
},
"hints": {
"webhook": "Aus Slack unter Incoming Webhooks. Die Adresse hängt fest an einem Kanal.",
"includeInternal": "Slack ist intern, deshalb standardmäßig an. Aus heißt nur Kunden- und öffentliche Beiträge.",
"sendNow": "Schickt den Stand der letzten sieben Tage sofort in den Kanal."
"sendNow": "Schickt den Stand der letzten sieben Tage sofort in den Kanal.",
"botToken": "Aus der Slack-App unter OAuth & Permissions, beginnt mit xoxb. Mit Bot-Token lassen sich Nachrichten später wieder löschen.",
"channel": "Name oder Kennung des Kanals, etwa logbuch oder C01234567."
},
"errors": {
"webhookInvalid": "Das sieht nicht nach einer Slack-Webhook-Adresse aus."
}
"webhookInvalid": "Das sieht nicht nach einer Slack-Webhook-Adresse aus.",
"tokenInvalid": "Ein Bot-Token beginnt mit xoxb oder xoxp."
},
"tokenStored": "Hinterlegt, wird nicht mehr angezeigt.",
"replaceToken": "Anderen Token eintragen",
"messageDelete": "In Slack löschen",
"messageDeleting": "Wird gelöscht",
"messageDeleted": "Gelöscht",
"messageWebhook": "Über Webhook, nicht löschbar",
"pathBot": "Versand über den Bot-Token. Nachrichten lassen sich hier wieder löschen.",
"pathWebhook": "Versand über den Webhook. Nachrichten lassen sich danach nicht mehr löschen, dafür braucht es einen Bot-Token.",
"pathNone": "Noch kein Weg hinterlegt, es geht nichts raus."
}
},
"filter": {