feat: file/screenshot attachments on support tickets (v0.49.1)

Support form now accepts up to 5 attachments (images, PDF, text, JSON,
zip; 10MB each) via the existing S3/MinIO presigned-upload flow. New
support_ticket_attachments table; attachment links get folded into the
Gitea issue body and shown as thumbnails in both the user's ticket
history and the admin support view.

New presign endpoint (/api/v1/support/attachments/presign, rate-limited
20/hr) scoped to the uploading user rather than a ticket id, since the
ticket doesn't exist yet at upload time.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Arnaud
2026-07-18 12:09:40 +02:00
parent 811d4cad42
commit 12c2ec213a
19 changed files with 5855 additions and 64 deletions
+8
View File
@@ -462,6 +462,14 @@
"titlePlaceholder": "Résumé court du problème ou de l'idée",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Ce qui s'est passé, ce que vous attendiez, et les étapes pour reproduire (si bug) — ou les détails de votre suggestion/question.",
"attachmentsLabel": "Pièces jointes",
"attachmentsHint": "Captures d'écran ou fichiers, jusqu'à {count}. Images, PDF, texte, JSON ou zip — 10 Mo max chacun.",
"attachmentAdd": "Ajouter un fichier",
"attachmentUploading": "Envoi…",
"removeAttachment": "Retirer la pièce jointe",
"attachmentLimitReached": "Vous pouvez joindre jusqu'à {count} fichiers.",
"attachmentTooLarge": "\"{name}\" dépasse la limite de 10 Mo.",
"attachmentUploadFailed": "Échec de l'envoi de \"{name}\".",
"submitButton": "Envoyer",
"submitting": "Envoi…",
"submitSuccess": "Merci ! Nous avons reçu votre message.",