Implement leveling rewards feature with UI and backend support

- Added functionality to manage role rewards based on user levels in the leveling system.
- Updated the LevelingForm component to include fields for defining rewards, including validation for unique levels.
- Enhanced backend logic to handle reward data storage and retrieval, ensuring proper integration with the existing leveling configuration.
- Introduced localization keys for rewards in both English and German, improving user experience.
- Updated dashboard search index to include rewards settings for easier access.
This commit is contained in:
smueller
2026-07-23 12:41:13 +02:00
parent 3af989a83b
commit fba597a6f2
9 changed files with 480 additions and 183 deletions

View File

@@ -522,7 +522,10 @@
"errors": {
"multiplierMissingId": "Jeder Multiplikator braucht eine Rolle bzw. einen Kanal.",
"multiplierInvalid": "Multiplikatoren müssen eine positive Zahl sein.",
"multiplierDuplicate": "Jede Rolle bzw. jeder Kanal darf nur einmal vorkommen."
"multiplierDuplicate": "Jede Rolle bzw. jeder Kanal darf nur einmal vorkommen.",
"rewardMissingRole": "Jede Belohnung braucht eine Rolle.",
"rewardInvalidLevel": "Das Level muss eine ganze Zahl ab 1 sein.",
"rewardDuplicateLevel": "Jedes Level darf nur einmal eine Belohnung haben."
},
"levelUpTitle": "Level-Up-Nachricht",
"levelUpMode": "Modus",
@@ -533,7 +536,13 @@
},
"levelUpChannelId": "Level-Up-Kanal",
"levelUpMessage": "Nachrichtentext",
"rewardsTitle": "Rollen-Belohnungen",
"rewardsDescription": "Lege fest, ab welchem Level welche Rolle vergeben wird.",
"rewardLevel": "Level",
"rewardRole": "Rolle",
"addReward": "Belohnung hinzufügen",
"stackRewards": "Rollen-Belohnungen stapeln",
"stackRewardsHint": "An = alle erreichten Belohnungsrollen behalten. Aus = nur die Rolle des aktuellen Levels.",
"rankCardTitle": "Rang-Karte",
"cardAccentColor": "Akzentfarbe",
"cardBackgroundColor": "Hintergrundfarbe"

View File

@@ -522,7 +522,10 @@
"errors": {
"multiplierMissingId": "Every multiplier needs a role or channel.",
"multiplierInvalid": "Multipliers must be a positive number.",
"multiplierDuplicate": "Each role or channel may only appear once."
"multiplierDuplicate": "Each role or channel may only appear once.",
"rewardMissingRole": "Every reward needs a role.",
"rewardInvalidLevel": "Level must be a whole number of at least 1.",
"rewardDuplicateLevel": "Each level may only have one reward."
},
"levelUpTitle": "Level-up message",
"levelUpMode": "Mode",
@@ -533,7 +536,13 @@
},
"levelUpChannelId": "Level-up channel",
"levelUpMessage": "Message content",
"rewardsTitle": "Role rewards",
"rewardsDescription": "Choose which role is granted at which level.",
"rewardLevel": "Level",
"rewardRole": "Role",
"addReward": "Add reward",
"stackRewards": "Stack role rewards",
"stackRewardsHint": "On = keep all unlocked reward roles. Off = only the role for the current level.",
"rankCardTitle": "Rank card",
"cardAccentColor": "Accent color",
"cardBackgroundColor": "Background color"