From 3c035aec9d51dc215bb6ad179df9c518ab796a96 Mon Sep 17 00:00:00 2001 From: Corentin Huet Date: Wed, 9 Jul 2025 15:08:49 +0200 Subject: [PATCH] feat: allow svg files in tickets --- app/Enums/Tickets/TicketFileTypeEnum.php | 3 +++ app/Http/Controllers/Bo/TicketController.php | 2 +- app/Http/Requests/Bo/CreateMessage.php | 2 +- app/Http/Requests/Bo/StoreTicket.php | 2 +- resources/views/bo/pages/tickets/form-inputs.blade.php | 2 +- resources/views/bo/pages/tickets/show.blade.php | 2 +- 6 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/Enums/Tickets/TicketFileTypeEnum.php b/app/Enums/Tickets/TicketFileTypeEnum.php index 7665508..82dc1a6 100644 --- a/app/Enums/Tickets/TicketFileTypeEnum.php +++ b/app/Enums/Tickets/TicketFileTypeEnum.php @@ -16,6 +16,7 @@ enum TicketFileTypeEnum: int case docx = '.docx'; case xlsx = '.xlsx'; case csv = '.csv'; + case svg = '.svg'; /** * Optionnal labels definition @@ -29,6 +30,7 @@ enum TicketFileTypeEnum: int self::docx->name => "Fichier docx", self::xlsx->name => "Fichier xlsx", self::csv->name => "Fichier csv", + self::svg->name => "Fichier svg", ]; /** @@ -43,6 +45,7 @@ enum TicketFileTypeEnum: int self::docx->name => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', self::xlsx->name => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', self::csv->name => 'text/csv', + self::svg->name => 'image/svg+xml', ]; /** diff --git a/app/Http/Controllers/Bo/TicketController.php b/app/Http/Controllers/Bo/TicketController.php index b54cd7c..d9ebe67 100644 --- a/app/Http/Controllers/Bo/TicketController.php +++ b/app/Http/Controllers/Bo/TicketController.php @@ -806,7 +806,7 @@ class TicketController extends Controller */ private function formatGitlabFiles(Ticket $ticket, array $uploadedFile, int $fileNb) { - if (Str::endsWith($ticket->file, ['jpg', 'png', 'jpeg', 'pptx', 'docx', 'xslx', 'csv'])) { + if (Str::endsWith($ticket->file, ['jpg', 'png', 'jpeg', 'pptx', 'docx', 'xslx', 'csv', 'svg'])) { $file = \sprintf( "![Fichier joint %d](%s)", $fileNb, diff --git a/app/Http/Requests/Bo/CreateMessage.php b/app/Http/Requests/Bo/CreateMessage.php index 5031dc5..a714eda 100644 --- a/app/Http/Requests/Bo/CreateMessage.php +++ b/app/Http/Requests/Bo/CreateMessage.php @@ -56,7 +56,7 @@ class CreateMessage extends FormRequest 'subscribe' => 'required|boolean', 'message' => 'required|min:' . ($user->isAdmin() ? '5' : '20'), 'file_messages' => 'sometimes|array', - 'file_messages.*' => 'mimes:pptx,docx,xlsx,csv,txt,jpeg,jpg,png,pdf|max:2048', + 'file_messages.*' => 'mimes:pptx,docx,xlsx,csv,txt,jpeg,jpg,png,pdf,svg|max:2048', 'type' => ['required', new Enum(MessageTypeEnum::class)] ]; } diff --git a/app/Http/Requests/Bo/StoreTicket.php b/app/Http/Requests/Bo/StoreTicket.php index e6fa419..8c5a568 100644 --- a/app/Http/Requests/Bo/StoreTicket.php +++ b/app/Http/Requests/Bo/StoreTicket.php @@ -100,7 +100,7 @@ class StoreTicket extends FormRequest 'text' => 'required|string|min:40', 'title' => 'required|string|between:3,255', 'file_tickets' => 'sometimes|array', - 'file_tickets.*' => 'mimes:pptx,docx,xlsx,csv,txt,jpeg,jpg,png,pdf|max:2048', + 'file_tickets.*' => 'mimes:pptx,docx,xlsx,csv,txt,jpeg,jpg,png,pdf,svg|max:2048', 'is_internal' => 'required|boolean', 'labels' => 'sometimes|array', 'labels.*' => [ diff --git a/resources/views/bo/pages/tickets/form-inputs.blade.php b/resources/views/bo/pages/tickets/form-inputs.blade.php index 4391a58..9826410 100644 --- a/resources/views/bo/pages/tickets/form-inputs.blade.php +++ b/resources/views/bo/pages/tickets/form-inputs.blade.php @@ -114,7 +114,7 @@ @for ($i = 1; $i < 6; $i++)

Fichier joint {{ $i }}

- + @if (isset($ticket) and $ticket->file !== null) @php $fileNumber = 'file'. $i; diff --git a/resources/views/bo/pages/tickets/show.blade.php b/resources/views/bo/pages/tickets/show.blade.php index 5dcfc8f..b525073 100644 --- a/resources/views/bo/pages/tickets/show.blade.php +++ b/resources/views/bo/pages/tickets/show.blade.php @@ -150,7 +150,7 @@

Fichier joint {{ $i }}

+ accept="image/png, image/jpeg, image/jpg, .pdf, .pptx, .docx, .xlsx, .csv, image/svg+xml">
@endfor