From d97071b740e2424b72246d85a0f8376f5e96d9a6 Mon Sep 17 00:00:00 2001 From: Nicolas Demangeat Date: Tue, 24 Oct 2023 10:08:32 +0200 Subject: [PATCH] add commitments to explorer page selection --- .../Controllers/Bo/CommitmentController.php | 2 ++ .../Controllers/Bo/ExplorerpageController.php | 10 +++++-- .../Explorerpage/StoreExplorerpageRequest.php | 15 ++++++---- resources/views/bo/layouts/nav-list.blade.php | 25 +++++++++------- .../bo/pages/commitments/index-list.blade.php | 13 +++++--- .../bo/pages/explorerpages/form.blade.php | 30 +++++++++++++++++++ routes/web-bo.php | 4 ++- 7 files changed, 76 insertions(+), 23 deletions(-) diff --git a/app/Http/Controllers/Bo/CommitmentController.php b/app/Http/Controllers/Bo/CommitmentController.php index 93fa78a..eaad359 100644 --- a/app/Http/Controllers/Bo/CommitmentController.php +++ b/app/Http/Controllers/Bo/CommitmentController.php @@ -7,12 +7,14 @@ use App\Http\Requests\Bo\Commitments\StoreCommitmentRequest; use App\Http\Requests\Bo\Commitments\UpdateCommitmentRequest; use App\Models\Commitment; use App\Traits\Controllers\ChangesModelOrder; +use App\Traits\Controllers\UpdateModelPublished; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; class CommitmentController extends Controller { + use UpdateModelPublished; use ChangesModelOrder; /** diff --git a/app/Http/Controllers/Bo/ExplorerpageController.php b/app/Http/Controllers/Bo/ExplorerpageController.php index 3b0adf3..072cbf3 100644 --- a/app/Http/Controllers/Bo/ExplorerpageController.php +++ b/app/Http/Controllers/Bo/ExplorerpageController.php @@ -4,6 +4,7 @@ namespace App\Http\Controllers\Bo; use App\Http\Controllers\Controller; use App\Http\Requests\Bo\Explorerpage\UpdateExplorerpageRequest; +use App\Models\Commitment; use App\Models\Explorerpage; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; @@ -63,7 +64,11 @@ class ExplorerpageController extends Controller */ public function edit(Explorerpage $explorerpage): \Illuminate\Contracts\View\View { - return view('bo.pages.explorerpages.edit', ['explorerpageModel' => $explorerpage]); + $commitmentModels = Commitment::all(); + return view('bo.pages.explorerpages.edit', [ + 'explorerpageModel' => $explorerpage, + 'commitmentModels' => $commitmentModels, + ]); } /** @@ -78,7 +83,8 @@ class ExplorerpageController extends Controller Explorerpage $explorerpage ): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request, $explorerpage) { - $explorerpage->fill($request->validated()); + $explorerpage->fill($request->safe()->except('commitments')); + $explorerpage->commitments()->sync(\collect($request->validated('commitments'))->pluck('id')); if ($explorerpage->saveOrFail()) { return redirect()->route('bo.explorerpages.edit', $explorerpage) diff --git a/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php b/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php index 1c91365..61e8140 100644 --- a/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php +++ b/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php @@ -39,12 +39,15 @@ class StoreExplorerpageRequest extends FormRequest public function rules() { $rules = [ - 'picture_1_alt' => 'required|string|between:3,255', - 'picture_1_title' => 'required|string|between:3,255', - 'picture_2_alt' => 'required|string|between:3,255', - 'picture_2_title' => 'required|string|between:3,255', - 'picture_3_alt' => 'required|string|between:3,255', - 'picture_3_title' => 'required|string|between:3,255', + 'picture_1_alt' => 'required|string|between:3,255', + 'picture_1_title' => 'required|string|between:3,255', + 'picture_2_alt' => 'required|string|between:3,255', + 'picture_2_title' => 'required|string|between:3,255', + 'picture_3_alt' => 'required|string|between:3,255', + 'picture_3_title' => 'required|string|between:3,255', + 'commitments' => 'required|array', + 'commitments.*.id' => 'required|exists:commitments,id', + ]; return \array_merge( diff --git a/resources/views/bo/layouts/nav-list.blade.php b/resources/views/bo/layouts/nav-list.blade.php index e268fe1..170670f 100644 --- a/resources/views/bo/layouts/nav-list.blade.php +++ b/resources/views/bo/layouts/nav-list.blade.php @@ -31,18 +31,14 @@ @endcan - @can('viewAny', \App\Models\Convictionpage::class) -
  • - - {{ Str::of(__('models.classes.convictionpage'))->plural()->ucfirst() }} - -
  • - @endcan @endcan + @can('viewAny', \App\Models\Convictionpage::class) +
  • + + {{ Str::of(__('models.classes.convictionpage'))->plural()->ucfirst() }} + +
  • + @endcan diff --git a/resources/views/bo/pages/commitments/index-list.blade.php b/resources/views/bo/pages/commitments/index-list.blade.php index 7237208..6eaedad 100644 --- a/resources/views/bo/pages/commitments/index-list.blade.php +++ b/resources/views/bo/pages/commitments/index-list.blade.php @@ -5,8 +5,9 @@ 'cols' => [ 'title' => Str::ucfirst(__('validation.attributes.title')), 'picture' => Str::ucfirst(__('validation.custom.picture')), - 'updated_at' => Str::ucfirst(__('validation.attributes.updated_at')), 'order' => Str::ucfirst(__('validation.custom.order')), + 'published' => Str::ucfirst(__('validation.custom.activated')), + 'updated_at' => Str::ucfirst(__('validation.attributes.updated_at')), ], ]) @@ -18,9 +19,6 @@ {{ $commitmentModel->picture_alt }} - - {{ $commitmentModel->updated_at->isoFormat('LLLL') }} - @php $routeName = request() ->route() @@ -33,6 +31,13 @@ 'models' => $commitmentModels, ]) @endif + @include('bo.modules.change-published-status', [ + 'routeName' => 'commitments', + 'model' => $commitmentModel, + ]) + + {{ $commitmentModel->updated_at->isoFormat('LLLL') }} + @canAny(['delete', 'duplicate', 'update'], $commitmentModel)
    + {{-- COMMITMENTS --}} +
    +
    + {{ Str::of(__('models.classes.commitment'))->plural()->ucfirst() }} +
    +
    + @include('bo.partials.inputs.pivot-belongsToMany', [ + 'id' => 'explorerpageCommitments', + 'label' => __(':field :inter:model', [ + 'field' => Str::of(__('models.classes.commitment'))->plural()->ucfirst(), + 'inter' => __('validation.custom.of_the.female'), + 'model' => __('models.classes.explorerpage'), + ]), + 'name' => 'commitments', + 'required' => false, + 'model' => $explorerpageModel ?? null, + 'itemsList' => $commitmentModels ?? null, + 'itemLimit' => [3, 12], + 'placeholder' => 'Rechercher un engagement', + 'helper' => __('Séléctionnez le ou les :model1 à associer à la :model2 (minimum :min, maximum :max)', [ + 'model1' => Str::plural(__('models.classes.commitment')), + 'model2' => __('models.classes.explorerpage'), + 'min' => 3, + 'max' => 12, + ]), + ]) +
    +
    +
    +

    * {{ __('crud.helpers.required_fields') }}

    diff --git a/routes/web-bo.php b/routes/web-bo.php index 92e0d1c..95d38a2 100644 --- a/routes/web-bo.php +++ b/routes/web-bo.php @@ -51,10 +51,12 @@ Route::prefix('bo') Route::get('/commitments/{commitment}/duplicate', [ CommitmentController::class, 'duplicate' ])->name('commitments.duplicate'); - // Change order. Route::patch('/commitments/{commitment}/change-order/{direction}', [ CommitmentController::class, 'changeOrder' ])->where('direction', 'up|down')->name('commitments.change-order'); + Route::patch('/commitments/{commitment}/change-published', [ + CommitmentController::class, 'changePublished' + ])->name('commitments.change-published'); // * STATIC_PAGES Route::resource('pages', StaticPageController::class)