feat(Chat): implement chat incident reporting feature
All checks were successful
Deploy to production / deploy (push) Successful in 1m57s

- Added reportChatIncident method in ChatController to handle reporting of chat incidents.
- Introduced a new API route for reporting incidents in chatRouter.
- Implemented chatService methods to ensure the chat report table is created and to handle incident data storage.
- Enhanced frontend components to allow users to report incidents in both multi and random chat dialogs.
- Updated internationalization files to include new strings for reporting functionality in multiple languages.
This commit is contained in:
Torsten Schulz (local)
2026-04-27 15:00:52 +02:00
parent 90e1c0496a
commit ff68fb72c4
12 changed files with 297 additions and 8 deletions

View File

@@ -43,6 +43,11 @@
"participantsWithCount": "Mga partisipante ({count})",
"clickToSelectUser": "I-klik aron pilion",
"screamColon": " misinggit:",
"report": "I-report",
"reportConfirmTitle": "I-report ang chat",
"reportConfirmMessage": "Sigurado ka nga i-report nimo ang user nga {user}? Ang tibuok chat history i-save.",
"reportSent": "Malampuson nga na-save ang report.",
"reportError": "Napakyas ang pag-save sa report.",
"commandPreviewFallback": "/cr <ngalan sa lawak>",
"createRoom": {
"toggleShowChat": "Ipakita ang chat",
@@ -156,7 +161,11 @@
"jumptonext": "Tapusa kining chat",
"userleftchat": "Mibiya na ang ka-chat sa panag-istorya.",
"startsearch": "Pangita sa sunod nga panag-istorya",
"selfstopped": "Mibiya ka sa panag-istorya."
"selfstopped": "Mibiya ka sa panag-istorya.",
"report": "I-report",
"reportConfirm": "Sigurado ka nga i-report nimo kining chat? Ang tibuok chat history i-save.",
"reportSent": "Malampuson nga na-save ang report.",
"reportError": "Napakyas ang pag-save sa report."
}
}
}

View File

@@ -44,6 +44,11 @@
"participantsWithCount": "Teilnehmer ({count})",
"clickToSelectUser": "Zum Auswählen klicken",
"screamColon": " schreit:",
"report": "Melden",
"reportConfirmTitle": "Chat melden",
"reportConfirmMessage": "Möchtest du den Nutzer {user} wirklich melden? Der komplette Chatverlauf wird gespeichert.",
"reportSent": "Meldung wurde erfolgreich gespeichert.",
"reportError": "Meldung konnte nicht gespeichert werden.",
"commandPreviewFallback": "/cr <raumname>",
"createRoom": {
"toggleShowChat": "Chat anzeigen",
@@ -157,7 +162,11 @@
"jumptonext": "Diesen Chat beenden",
"userleftchat": "Der Gesprächstpartner hat den Chat verlassen.",
"startsearch": "Suche nächstes Gespräch",
"selfstopped": "Du hast das Gespräch verlassen."
"selfstopped": "Du hast das Gespräch verlassen.",
"report": "Melden",
"reportConfirm": "Möchtest du diesen Chat wirklich melden? Der komplette Chatverlauf wird gespeichert.",
"reportSent": "Meldung wurde erfolgreich gespeichert.",
"reportError": "Meldung konnte nicht gespeichert werden."
}
}
}

View File

@@ -44,6 +44,11 @@
"participantsWithCount": "Participants ({count})",
"clickToSelectUser": "Click to select",
"screamColon": " shouts:",
"report": "Report",
"reportConfirmTitle": "Report chat",
"reportConfirmMessage": "Do you really want to report user {user}? The full chat history will be stored.",
"reportSent": "Report was saved successfully.",
"reportError": "Report could not be saved.",
"commandPreviewFallback": "/cr <roomname>",
"createRoom": {
"toggleShowChat": "Show chat",
@@ -157,7 +162,11 @@
"jumptonext": "End this chat",
"userleftchat": "The chat partner has left the chat.",
"startsearch": "Search next conversation",
"selfstopped": "You left the conversation."
"selfstopped": "You left the conversation.",
"report": "Report",
"reportConfirm": "Do you really want to report this chat? The full chat history will be stored.",
"reportSent": "Report was saved successfully.",
"reportError": "Report could not be saved."
}
}
}

View File

@@ -43,6 +43,11 @@
"participantsWithCount": "Participantes ({count})",
"clickToSelectUser": "Clic para seleccionar",
"screamColon": " grita:",
"report": "Reportar",
"reportConfirmTitle": "Reportar chat",
"reportConfirmMessage": "¿Quieres reportar de verdad al usuario {user}? Se guardará todo el historial del chat.",
"reportSent": "El reporte se guardó correctamente.",
"reportError": "No se pudo guardar el reporte.",
"commandPreviewFallback": "/cr <nombre de sala>",
"createRoom": {
"toggleShowChat": "Mostrar chat",
@@ -156,7 +161,11 @@
"jumptonext": "Finalizar este chat",
"userleftchat": "La otra persona ha salido del chat.",
"startsearch": "Buscar la siguiente charla",
"selfstopped": "Has salido de la conversación."
"selfstopped": "Has salido de la conversación.",
"report": "Reportar",
"reportConfirm": "¿Quieres reportar de verdad este chat? Se guardará todo el historial del chat.",
"reportSent": "El reporte se guardó correctamente.",
"reportError": "No se pudo guardar el reporte."
}
}
}

View File

@@ -43,6 +43,11 @@
"participantsWithCount": "Participants ({count})",
"clickToSelectUser": "Cliquer pour sélectionner",
"screamColon": " crie :",
"report": "Signaler",
"reportConfirmTitle": "Signaler le chat",
"reportConfirmMessage": "Voulez-vous vraiment signaler l'utilisateur {user} ? L'historique complet du chat sera enregistré.",
"reportSent": "Le signalement a été enregistré avec succès.",
"reportError": "Le signalement n'a pas pu être enregistré.",
"commandPreviewFallback": "/cr <nom de la salle>",
"createRoom": {
"toggleShowChat": "Chat anzeigen",
@@ -156,7 +161,11 @@
"jumptonext": "Diesen Chat beenden",
"userleftchat": "Der Gesprächstpartner hat den Chat verlassen.",
"startsearch": "Suche nächstes Gespräch",
"selfstopped": "Du hast das Gespräch verlassen."
"selfstopped": "Du hast das Gespräch verlassen.",
"report": "Signaler",
"reportConfirm": "Voulez-vous vraiment signaler ce chat ? L'historique complet du chat sera enregistré.",
"reportSent": "Le signalement a été enregistré avec succès.",
"reportError": "Le signalement n'a pas pu être enregistré."
}
}
}