diff --git a/app/Http/Controllers/Bo/TicketController.php b/app/Http/Controllers/Bo/TicketController.php index 9e272ad..835d17a 100644 --- a/app/Http/Controllers/Bo/TicketController.php +++ b/app/Http/Controllers/Bo/TicketController.php @@ -182,6 +182,12 @@ class TicketController extends Controller $fileTicket = $request->file_ticket; /** @var \Illuminate\Http\UploadedFile|null */ $fileTicket2 = $request->file_ticket2; + /** @var \Illuminate\Http\UploadedFile|null */ + $fileTicket3 = $request->file_ticket3; + /** @var \Illuminate\Http\UploadedFile|null */ + $fileTicket4 = $request->file_ticket4; + /** @var \Illuminate\Http\UploadedFile|null */ + $fileTicket5 = $request->file_ticket5; if ($fileTicket) { $ticket->file = FileStorageHelper::storeFile($ticket, $fileTicket); @@ -189,6 +195,15 @@ class TicketController extends Controller if ($fileTicket2) { $ticket->file2 = FileStorageHelper::storeFile($ticket, $fileTicket2); } + if ($fileTicket3) { + $ticket->file3 = FileStorageHelper::storeFile($ticket, $fileTicket3); + } + if ($fileTicket4) { + $ticket->file4 = FileStorageHelper::storeFile($ticket, $fileTicket4); + } + if ($fileTicket5) { + $ticket->file5 = FileStorageHelper::storeFile($ticket, $fileTicket5); + } $ticket->user()->associate(auth()->user()); $ticket->site()->associate($site); @@ -256,6 +271,12 @@ class TicketController extends Controller $fileTicket = $request->file_ticket; /** @var \Illuminate\Http\UploadedFile|null */ $fileTicket2 = $request->file_ticket2; + /** @var \Illuminate\Http\UploadedFile|null */ + $fileTicket3 = $request->file_ticket3; + /** @var \Illuminate\Http\UploadedFile|null */ + $fileTicket4 = $request->file_ticket4; + /** @var \Illuminate\Http\UploadedFile|null */ + $fileTicket5 = $request->file_ticket5; if ($fileTicket) { $ticket->file = FileStorageHelper::storeFile($ticket, $fileTicket); @@ -263,6 +284,15 @@ class TicketController extends Controller if ($fileTicket2) { $ticket->file2 = FileStorageHelper::storeFile($ticket, $fileTicket2); } + if ($fileTicket3) { + $ticket->file3 = FileStorageHelper::storeFile($ticket, $fileTicket3); + } + if ($fileTicket4) { + $ticket->file4 = FileStorageHelper::storeFile($ticket, $fileTicket4); + } + if ($fileTicket5) { + $ticket->file5 = FileStorageHelper::storeFile($ticket, $fileTicket5); + } $ticket->labels()->sync($request->labels); @@ -595,7 +625,7 @@ class TicketController extends Controller }); } //end foreach } //end if - }, 'text', 'title', 'file', 'file2'); + }, 'text', 'title', 'file', 'file2', 'file3', 'file4', 'file5'); } /** @@ -654,6 +684,21 @@ class TicketController extends Controller $description .= $this->formatGitlabFiles($ticket, $uploadedFile2, 2); } + if (!\is_null($ticket->file3)) { + $uploadedFile3 = GitLab::projects()->uploadFile($gitlabRepoId, $ticket->file3); + $description .= $this->formatGitlabFiles($ticket, $uploadedFile3, 3); + } + + if (!\is_null($ticket->file4)) { + $uploadedFile4 = GitLab::projects()->uploadFile($gitlabRepoId, $ticket->file4); + $description .= $this->formatGitlabFiles($ticket, $uploadedFile4, 4); + } + + if (!\is_null($ticket->file5)) { + $uploadedFile5 = GitLab::projects()->uploadFile($gitlabRepoId, $ticket->file5); + $description .= $this->formatGitlabFiles($ticket, $uploadedFile5, 5); + } + $issue = GitLab::issues()->create($gitlabRepoId, [ 'title' => 'ts-' . $ticket->id, 'description' => $description, @@ -690,7 +735,7 @@ class TicketController extends Controller */ private function formatGitlabFiles(Ticket $ticket, array $uploadedFile, int $fileNb) { - if (Str::endsWith($ticket->file, ['jpg', 'png', 'jpeg'])) { + if (Str::endsWith($ticket->file, ['jpg', 'png', 'jpeg', 'pptx', 'docx', 'xslx', 'csv'])) { $file = \sprintf( "![Fichier joint %d](%s)", $fileNb, diff --git a/app/Http/Requests/Bo/StoreTicket.php b/app/Http/Requests/Bo/StoreTicket.php index a532a4b..752ca8c 100644 --- a/app/Http/Requests/Bo/StoreTicket.php +++ b/app/Http/Requests/Bo/StoreTicket.php @@ -96,16 +96,13 @@ class StoreTicket extends FormRequest } } ], - 'text' => 'required|string|min:40', - 'title' => 'required|string|between:3,255', - 'file_ticket' => 'mimes:pptx,docx,xlsx,csv,jpeg,jpg,png,pdf|max:2048', - 'file_ticket2' => 'mimes:pptx,docx,xlsx,csv,jpeg,jpg,png,pdf|max:2048', - 'file_ticket3' => 'mimes:pptx,docx,xlsx,csv,jpeg,jpg,png,pdf|max:2048', - 'file_ticket4' => 'mimes:pptx,docx,xlsx,csv,jpeg,jpg,png,pdf|max:2048', - 'file_ticket5' => 'mimes:pptx,docx,xlsx,csv,jpeg,jpg,png,pdf|max:2048', - 'is_internal' => 'required|boolean', - 'labels' => 'sometimes|array', - 'labels.*' => [ + 'text' => 'required|string|min:40', + 'title' => 'required|string|between:3,255', + 'file_tickets' => 'sometimes|array', + 'file_tickets.*' => 'mimes:pptx,docx,xlsx,csv,jpeg,jpg,png,pdf|max:2048', + 'is_internal' => 'required|boolean', + 'labels' => 'sometimes|array', + 'labels.*' => [ // @phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.FoundBeforeLastUsed 'required', 'exists:labels,id', function ($attribute, $value, $fail) use ($user) { if (!$user->can('assignLabels', Ticket::class)) { diff --git a/database/migrations/2024_07_19_150414_add_files_to_tickets_table.php b/database/migrations/2024_07_19_150414_add_files_to_tickets_table.php index 8ad73b2..f93fb3a 100644 --- a/database/migrations/2024_07_19_150414_add_files_to_tickets_table.php +++ b/database/migrations/2024_07_19_150414_add_files_to_tickets_table.php @@ -1,10 +1,8 @@ dropColumn('file4'); }); } -} +}; diff --git a/resources/views/bo/pages/tickets/form-inputs.blade.php b/resources/views/bo/pages/tickets/form-inputs.blade.php index dcd7a46..34fd450 100644 --- a/resources/views/bo/pages/tickets/form-inputs.blade.php +++ b/resources/views/bo/pages/tickets/form-inputs.blade.php @@ -105,56 +105,30 @@ -

Fichier joint 1

-
- - @if (isset($ticket) and $ticket->file !== null) -
-
- -
- @endif -
-

Fichier joint 2

-
- - @if (isset($ticket) and $ticket->file2 !== null) -
-
- -
- @endif -
-

Fichier joint 3

-
- - @if (isset($ticket) and $ticket->file3 !== null) -
-
- -
- @endif -
-

Fichier joint 4

-
- - @if (isset($ticket) and $ticket->file4 !== null) -
-
- -
- @endif -
-

Fichier joint 5

-
- - @if (isset($ticket) and $ticket->file5 !== null) -
-
- -
- @endif -
+ +@for ($i = 1; $i < 6; $i++) +

Fichier joint {{ $i }}

+
+ + @if (isset($ticket) and $ticket->file !== null) + @if ($i === 1) +
+
+ +
+ @else + @php + $fileNumber = 'file'. $i; + @endphp +
+
+ +
+ @endif + @endif +
+@endfor + @can('changeInternalStatus', App\Model\Ticket::class)
is_internal)) checked @endif>