Implement ticket panel synchronization and configuration updates
- Added `panelChannelId` and `panelMessageId` fields to the `TicketConfig` model for managing ticket panel settings. - Introduced `syncTicketPanel` function to handle posting and updating the ticket panel in Discord channels via BullMQ. - Enhanced error handling for ticket panel synchronization, including specific error messages for missing categories and posting failures. - Updated WebUI components to support panel channel selection and improved error messaging for synchronization issues. - Added localization entries for new error messages related to ticket panel synchronization in both English and German. - Refactored ticket category management to trigger panel synchronization upon category creation, update, or deletion.
This commit is contained in:
@@ -668,29 +668,36 @@
|
||||
},
|
||||
"tickets": {
|
||||
"title": "Tickets",
|
||||
"description": "Lege fest, wie Support-Tickets erstellt und verwaltet werden.",
|
||||
"description": "Lege fest, wie Support-Tickets erstellt werden. Beim Speichern (aktiviert, mit Panel-Kanal und mindestens einer Kategorie) wird das Ticket-Panel im gewählten Kanal gepostet bzw. aktualisiert.",
|
||||
"enabledLabel": "Ticket-Modul aktiviert",
|
||||
"mode": "Ticket-Modus",
|
||||
"modes": {
|
||||
"CHANNEL": "Privater Kanal",
|
||||
"THREAD": "Privater Thread"
|
||||
},
|
||||
"categoryId": "Ticket-Kategorie-ID",
|
||||
"panelChannelId": "Panel-Kanal",
|
||||
"panelChannelHint": "Kanal, in dem das Ticket-Panel mit Kategorie-Buttons erscheint.",
|
||||
"categoryId": "Discord-Kategorie für Ticket-Kanäle",
|
||||
"logChannelId": "Log-Kanal",
|
||||
"inactivityHours": "Automatisch schließen nach Inaktivität (Stunden)",
|
||||
"transcriptDm": "Transkript per DM an Ticket-Ersteller",
|
||||
"transcriptDmHint": "Sendet dem Nutzer nach Schließung ein Transkript per DM.",
|
||||
"ratingEnabled": "Nach Schließung um Bewertung bitten",
|
||||
"categoriesTitle": "Ticket-Kategorien",
|
||||
"categoriesDescription": "Kategorien, die Mitglieder beim Öffnen eines Tickets auswählen können.",
|
||||
"categoriesDescription": "Kategorien, die Mitglieder beim Öffnen eines Tickets auswählen können. Änderungen aktualisieren ein vorhandenes Panel.",
|
||||
"categoriesEmpty": "Noch keine Ticket-Kategorien konfiguriert.",
|
||||
"categoryName": "Name",
|
||||
"categoryEmoji": "Emoji",
|
||||
"categoryDescription": "Beschreibung",
|
||||
"supportRoleIds": "Support-Rollen-IDs",
|
||||
"supportRoleIds": "Support-Rollen",
|
||||
"idsPlaceholder": "Eine oder mehrere IDs, kommagetrennt",
|
||||
"addCategory": "Kategorie hinzufügen",
|
||||
"nameRequired": "Ein Name ist erforderlich."
|
||||
"nameRequired": "Ein Name ist erforderlich.",
|
||||
"errors": {
|
||||
"panelTimeout": "Der Bot hat das Ticket-Panel nicht rechtzeitig bestätigt. Es wird möglicherweise noch gepostet — prüfe den Kanal und die Bot-Berechtigungen, dann speichere erneut.",
|
||||
"panelNotPosted": "Das Ticket-Panel konnte nicht im Discord-Kanal erstellt werden. Prüfe Bot-Berechtigungen (Kanal sehen, Nachrichten senden, Embeds).",
|
||||
"noCategories": "Lege mindestens eine Ticket-Kategorie an, bevor das Panel gepostet werden kann."
|
||||
}
|
||||
},
|
||||
"giveaways": {
|
||||
"formIncomplete": "Bitte Kanal, Preis und Enddatum ausfüllen.",
|
||||
|
||||
@@ -668,29 +668,36 @@
|
||||
},
|
||||
"tickets": {
|
||||
"title": "Tickets",
|
||||
"description": "Configure how support tickets are created and managed.",
|
||||
"description": "Configure how support tickets are created. Saving (enabled, with panel channel and at least one category) posts or updates the ticket panel in the selected channel.",
|
||||
"enabledLabel": "Tickets module enabled",
|
||||
"mode": "Ticket mode",
|
||||
"modes": {
|
||||
"CHANNEL": "Private channel",
|
||||
"THREAD": "Private thread"
|
||||
},
|
||||
"categoryId": "Ticket category ID",
|
||||
"panelChannelId": "Panel channel",
|
||||
"panelChannelHint": "Channel where the ticket panel with category buttons is posted.",
|
||||
"categoryId": "Discord category for ticket channels",
|
||||
"logChannelId": "Log channel",
|
||||
"inactivityHours": "Auto-close after inactivity (hours)",
|
||||
"transcriptDm": "DM transcript to ticket creator",
|
||||
"transcriptDmHint": "Sends a transcript to the user via DM once their ticket is closed.",
|
||||
"ratingEnabled": "Ask for a rating after closing",
|
||||
"categoriesTitle": "Ticket categories",
|
||||
"categoriesDescription": "Categories members can choose from when opening a ticket.",
|
||||
"categoriesDescription": "Categories members can choose from when opening a ticket. Changes update an existing panel.",
|
||||
"categoriesEmpty": "No ticket categories configured yet.",
|
||||
"categoryName": "Name",
|
||||
"categoryEmoji": "Emoji",
|
||||
"categoryDescription": "Description",
|
||||
"supportRoleIds": "Support role IDs",
|
||||
"supportRoleIds": "Support roles",
|
||||
"idsPlaceholder": "One or more IDs, comma-separated",
|
||||
"addCategory": "Add category",
|
||||
"nameRequired": "A name is required."
|
||||
"nameRequired": "A name is required.",
|
||||
"errors": {
|
||||
"panelTimeout": "The bot did not confirm the ticket panel in time. It may still be posting — check the channel and bot permissions, then save again.",
|
||||
"panelNotPosted": "The ticket panel could not be created in the Discord channel. Check bot permissions (View Channel, Send Messages, Embed Links).",
|
||||
"noCategories": "Create at least one ticket category before the panel can be posted."
|
||||
}
|
||||
},
|
||||
"giveaways": {
|
||||
"formIncomplete": "Please fill in the channel, prize and end date.",
|
||||
|
||||
Reference in New Issue
Block a user