add commitments to explorer page selection
This commit is contained in:
parent
a17953deb1
commit
d97071b740
7 changed files with 76 additions and 23 deletions
|
|
@ -7,12 +7,14 @@ use App\Http\Requests\Bo\Commitments\StoreCommitmentRequest;
|
||||||
use App\Http\Requests\Bo\Commitments\UpdateCommitmentRequest;
|
use App\Http\Requests\Bo\Commitments\UpdateCommitmentRequest;
|
||||||
use App\Models\Commitment;
|
use App\Models\Commitment;
|
||||||
use App\Traits\Controllers\ChangesModelOrder;
|
use App\Traits\Controllers\ChangesModelOrder;
|
||||||
|
use App\Traits\Controllers\UpdateModelPublished;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
|
|
||||||
class CommitmentController extends Controller
|
class CommitmentController extends Controller
|
||||||
{
|
{
|
||||||
|
use UpdateModelPublished;
|
||||||
use ChangesModelOrder;
|
use ChangesModelOrder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ namespace App\Http\Controllers\Bo;
|
||||||
|
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
use App\Http\Requests\Bo\Explorerpage\UpdateExplorerpageRequest;
|
use App\Http\Requests\Bo\Explorerpage\UpdateExplorerpageRequest;
|
||||||
|
use App\Models\Commitment;
|
||||||
use App\Models\Explorerpage;
|
use App\Models\Explorerpage;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Illuminate\Support\Facades\DB;
|
use Illuminate\Support\Facades\DB;
|
||||||
|
|
@ -63,7 +64,11 @@ class ExplorerpageController extends Controller
|
||||||
*/
|
*/
|
||||||
public function edit(Explorerpage $explorerpage): \Illuminate\Contracts\View\View
|
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
|
Explorerpage $explorerpage
|
||||||
): \Illuminate\Http\RedirectResponse {
|
): \Illuminate\Http\RedirectResponse {
|
||||||
return DB::transaction(function () use ($request, $explorerpage) {
|
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()) {
|
if ($explorerpage->saveOrFail()) {
|
||||||
return redirect()->route('bo.explorerpages.edit', $explorerpage)
|
return redirect()->route('bo.explorerpages.edit', $explorerpage)
|
||||||
|
|
|
||||||
|
|
@ -39,12 +39,15 @@ class StoreExplorerpageRequest extends FormRequest
|
||||||
public function rules()
|
public function rules()
|
||||||
{
|
{
|
||||||
$rules = [
|
$rules = [
|
||||||
'picture_1_alt' => 'required|string|between:3,255',
|
'picture_1_alt' => 'required|string|between:3,255',
|
||||||
'picture_1_title' => 'required|string|between:3,255',
|
'picture_1_title' => 'required|string|between:3,255',
|
||||||
'picture_2_alt' => 'required|string|between:3,255',
|
'picture_2_alt' => 'required|string|between:3,255',
|
||||||
'picture_2_title' => 'required|string|between:3,255',
|
'picture_2_title' => 'required|string|between:3,255',
|
||||||
'picture_3_alt' => 'required|string|between:3,255',
|
'picture_3_alt' => 'required|string|between:3,255',
|
||||||
'picture_3_title' => '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(
|
return \array_merge(
|
||||||
|
|
|
||||||
|
|
@ -31,18 +31,14 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endcan
|
@endcan
|
||||||
@can('viewAny', \App\Models\Convictionpage::class)
|
|
||||||
<li>
|
|
||||||
<a class="nav-link @if (request()->routeIs('bo.convictionpages.*')) active @endif" data-bs-toggle="tooltip"
|
|
||||||
href="{{ route('bo.convictionpages.index') }}"
|
|
||||||
title="{{ __('crud.helpers.list_all', ['model' => Str::of(__('models.classes.convictionpage'))->plural()]) }}">
|
|
||||||
{{ Str::of(__('models.classes.convictionpage'))->plural()->ucfirst() }}
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
@endcan
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<div class="dropdown">
|
<div class="dropdown">
|
||||||
<a class="nav-link @if (request()->routeIs('bo.static_pages.*') || request()->routeIs('bo.static_pages.*')) active @endif dropdown-toggle" data-bs-toggle="dropdown" type="button"
|
<a class="nav-link @if (request()->routeIs('bo.static_pages.*') ||
|
||||||
|
request()->routeIs('bo.news.*') ||
|
||||||
|
request()->routeIs('bo.homepages.*') ||
|
||||||
|
request()->routeIs('bo.explorerpages.*') ||
|
||||||
|
request()->routeIs('bo.convictionpages.*') ||
|
||||||
|
request()->routeIs('bo.news.*')) active @endif dropdown-toggle" data-bs-toggle="dropdown" type="button"
|
||||||
aria-expanded="false">
|
aria-expanded="false">
|
||||||
{{ Str::of(trans_choice('models.classes.static_page', '*'))->title() }}
|
{{ Str::of(trans_choice('models.classes.static_page', '*'))->title() }}
|
||||||
</a>
|
</a>
|
||||||
|
|
@ -83,6 +79,15 @@
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
@endcan
|
@endcan
|
||||||
|
@can('viewAny', \App\Models\Convictionpage::class)
|
||||||
|
<li>
|
||||||
|
<a class="nav-link @if (request()->routeIs('bo.convictionpages.*')) active @endif" data-bs-toggle="tooltip"
|
||||||
|
href="{{ route('bo.convictionpages.index') }}"
|
||||||
|
title="{{ __('crud.helpers.list_all', ['model' => Str::of(__('models.classes.convictionpage'))->plural()]) }}">
|
||||||
|
{{ Str::of(__('models.classes.convictionpage'))->plural()->ucfirst() }}
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
@endcan
|
||||||
</ol>
|
</ol>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
|
|
@ -5,8 +5,9 @@
|
||||||
'cols' => [
|
'cols' => [
|
||||||
'title' => Str::ucfirst(__('validation.attributes.title')),
|
'title' => Str::ucfirst(__('validation.attributes.title')),
|
||||||
'picture' => Str::ucfirst(__('validation.custom.picture')),
|
'picture' => Str::ucfirst(__('validation.custom.picture')),
|
||||||
'updated_at' => Str::ucfirst(__('validation.attributes.updated_at')),
|
|
||||||
'order' => Str::ucfirst(__('validation.custom.order')),
|
'order' => Str::ucfirst(__('validation.custom.order')),
|
||||||
|
'published' => Str::ucfirst(__('validation.custom.activated')),
|
||||||
|
'updated_at' => Str::ucfirst(__('validation.attributes.updated_at')),
|
||||||
],
|
],
|
||||||
])
|
])
|
||||||
</thead>
|
</thead>
|
||||||
|
|
@ -18,9 +19,6 @@
|
||||||
<img src="{{ asset($commitmentModel->picture) }}" title="{{ $commitmentModel->picture_title }}"
|
<img src="{{ asset($commitmentModel->picture) }}" title="{{ $commitmentModel->picture_title }}"
|
||||||
alt="{{ $commitmentModel->picture_alt }}" height="50px">
|
alt="{{ $commitmentModel->picture_alt }}" height="50px">
|
||||||
</td>
|
</td>
|
||||||
<td class="text-center align-middle">
|
|
||||||
<span class="badge bg-secondary">{{ $commitmentModel->updated_at->isoFormat('LLLL') }}</span>
|
|
||||||
</td>
|
|
||||||
@php
|
@php
|
||||||
$routeName = request()
|
$routeName = request()
|
||||||
->route()
|
->route()
|
||||||
|
|
@ -33,6 +31,13 @@
|
||||||
'models' => $commitmentModels,
|
'models' => $commitmentModels,
|
||||||
])
|
])
|
||||||
@endif
|
@endif
|
||||||
|
@include('bo.modules.change-published-status', [
|
||||||
|
'routeName' => 'commitments',
|
||||||
|
'model' => $commitmentModel,
|
||||||
|
])
|
||||||
|
<td class="text-center align-middle">
|
||||||
|
<span class="badge bg-secondary">{{ $commitmentModel->updated_at->isoFormat('LLLL') }}</span>
|
||||||
|
</td>
|
||||||
<td class="text-end align-middle">
|
<td class="text-end align-middle">
|
||||||
@canAny(['delete', 'duplicate', 'update'], $commitmentModel)
|
@canAny(['delete', 'duplicate', 'update'], $commitmentModel)
|
||||||
<form class="btn-group confirmDeleteTS" action="{{ route('bo.commitments.destroy', $commitmentModel) }}"
|
<form class="btn-group confirmDeleteTS" action="{{ route('bo.commitments.destroy', $commitmentModel) }}"
|
||||||
|
|
|
||||||
|
|
@ -221,6 +221,36 @@
|
||||||
</div>
|
</div>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
</div>
|
</div>
|
||||||
|
{{-- COMMITMENTS --}}
|
||||||
|
<div class="col-12 mb-3">
|
||||||
|
<fieldset class="h-100 border p-3">
|
||||||
|
<legend>{{ Str::of(__('models.classes.commitment'))->plural()->ucfirst() }}</legend>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
@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,
|
||||||
|
]),
|
||||||
|
])
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</fieldset>
|
||||||
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col text-center">
|
<div class="col text-center">
|
||||||
<p><b>* {{ __('crud.helpers.required_fields') }}</b></p>
|
<p><b>* {{ __('crud.helpers.required_fields') }}</b></p>
|
||||||
|
|
|
||||||
|
|
@ -51,10 +51,12 @@ Route::prefix('bo')
|
||||||
Route::get('/commitments/{commitment}/duplicate', [
|
Route::get('/commitments/{commitment}/duplicate', [
|
||||||
CommitmentController::class, 'duplicate'
|
CommitmentController::class, 'duplicate'
|
||||||
])->name('commitments.duplicate');
|
])->name('commitments.duplicate');
|
||||||
// Change order.
|
|
||||||
Route::patch('/commitments/{commitment}/change-order/{direction}', [
|
Route::patch('/commitments/{commitment}/change-order/{direction}', [
|
||||||
CommitmentController::class, 'changeOrder'
|
CommitmentController::class, 'changeOrder'
|
||||||
])->where('direction', 'up|down')->name('commitments.change-order');
|
])->where('direction', 'up|down')->name('commitments.change-order');
|
||||||
|
Route::patch('/commitments/{commitment}/change-published', [
|
||||||
|
CommitmentController::class, 'changePublished'
|
||||||
|
])->name('commitments.change-published');
|
||||||
|
|
||||||
// * STATIC_PAGES
|
// * STATIC_PAGES
|
||||||
Route::resource('pages', StaticPageController::class)
|
Route::resource('pages', StaticPageController::class)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue