diff --git a/app/Http/Controllers/Bo/JoinuspageController.php b/app/Http/Controllers/Bo/JoinuspageController.php new file mode 100644 index 0000000..a5e0c62 --- /dev/null +++ b/app/Http/Controllers/Bo/JoinuspageController.php @@ -0,0 +1,91 @@ +authorizeResource(Joinuspage::class); + } + + /** + * Display a listing of the resource. + * + * @param \Illuminate\Http\Request $request + * @return \Illuminate\Contracts\View\View + */ + public function index(Request $request): \Illuminate\Contracts\View\View + { + /** @var \Illuminate\Database\Eloquent\Builder $joinuspageModels */ + $joinuspageModels = Joinuspage::query(); + + /** @var string $search Search field */ + $search = $request->search; + if ($search) { + $this->searchQuery( + $joinuspageModels, + $search, + null, + 'video_url', + ); + } + $searchFields = \implode(', ', [ + Str::ucfirst(trans('validation.attributes.url')) + ]); + + /** Sort columns with a query */ + $this->sortQuery($joinuspageModels); + + /** Custom pagination */ + $joinuspageModels = $this->paginate($joinuspageModels); + + return view('bo.pages.joinuspages.index', compact('joinuspageModels', 'search', 'searchFields')); + } + + /** + * Show the form for editing the specified resource. + * + * @param App\Models\Joinuspage $joinuspage + * @return \Illuminate\Contracts\View\View + */ + public function edit(Joinuspage $joinuspage): \Illuminate\Contracts\View\View + { + return view('bo.pages.joinuspages.edit', ['joinuspageModel' => $joinuspage]); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\Bo\Joinuspages\UpdateJoinuspageRequest $request + * @param \App\Models\Joinuspage $joinuspage + * @return \Illuminate\Http\RedirectResponse + */ + public function update(UpdateJoinuspageRequest $request, Joinuspage $joinuspage): \Illuminate\Http\RedirectResponse + { + return DB::transaction(function () use ($request, $joinuspage) { + $joinuspage->fill($request->validated()); + + if ($joinuspage->saveOrFail()) { + return redirect()->route('bo.joinuspages.edit', $joinuspage) + ->with('success', __('crud.messages.has_been_updated', [ + 'model' => Str::ucfirst(__('models.classes.joinuspage')) + ])); + } + return redirect()->route('bo.joinuspages.edit', $joinuspage) + ->with('error', __('crud.messages.cannot_be_updated', [ + 'model' => Str::ucfirst(__('models.classes.joinuspage')) + ])); + }); + } +} diff --git a/app/Http/Requests/Bo/Joinuspage/StoreJoinuspageRequest.php b/app/Http/Requests/Bo/Joinuspage/StoreJoinuspageRequest.php new file mode 100644 index 0000000..5916a08 --- /dev/null +++ b/app/Http/Requests/Bo/Joinuspage/StoreJoinuspageRequest.php @@ -0,0 +1,30 @@ +check(); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return [ + 'video_url' => 'required|string|between:3,255', + ]; + } +} diff --git a/app/Http/Requests/Bo/Joinuspage/UpdateJoinuspageRequest.php b/app/Http/Requests/Bo/Joinuspage/UpdateJoinuspageRequest.php new file mode 100644 index 0000000..34506a6 --- /dev/null +++ b/app/Http/Requests/Bo/Joinuspage/UpdateJoinuspageRequest.php @@ -0,0 +1,18 @@ + 'commitment', 'product' => 'product', 'convictionpage' => 'conviction page', + 'joinuspage' => 'join us page', ] ]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index aed6654..7f33fd4 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -213,6 +213,7 @@ return [ 'updated_at' => 'updated at', 'username' => 'username', 'year' => 'year', + 'url' => 'URL', ], 'custom' => [ 'of_the' => [ @@ -265,5 +266,6 @@ return [ 'key_together_3' => 'key number for "live together" 3', 'key_together_4' => 'key number for "live together" 4', 'key_territory' => 'key number for "integrate its territory"', + 'video_url' => 'URL of the video', ], ]; diff --git a/resources/lang/fr/models.php b/resources/lang/fr/models.php index cab2280..b240d43 100644 --- a/resources/lang/fr/models.php +++ b/resources/lang/fr/models.php @@ -14,5 +14,6 @@ return [ 'explorerpage' => 'page explorateur', 'product' => 'produit', 'convictionpage' => 'page conviction', + 'joinuspage' => 'page rejoignez-nous' ] ]; diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php index fcdcd33..f53eda5 100644 --- a/resources/lang/fr/validation.php +++ b/resources/lang/fr/validation.php @@ -215,6 +215,7 @@ return [ 'updated_at' => 'mis à jour à', 'username' => 'nom d\'utilisateur', 'year' => 'année', + 'url' => 'URL', ], 'custom' => [ 'of_the' => [ @@ -267,5 +268,6 @@ return [ 'key_together_3' => 'Chiffre clé "vivre ensemble" 3', 'key_together_4' => 'Chiffre clé "vivre ensemble" 4', 'key_territory' => 'Chiffre clé "intégrer son territoire"', + 'video_url' => 'URL de la vidéo', ], ]; diff --git a/resources/views/bo/layouts/nav-list.blade.php b/resources/views/bo/layouts/nav-list.blade.php index 170670f..bf4cbe6 100644 --- a/resources/views/bo/layouts/nav-list.blade.php +++ b/resources/views/bo/layouts/nav-list.blade.php @@ -38,6 +38,7 @@ request()->routeIs('bo.homepages.*') || request()->routeIs('bo.explorerpages.*') || request()->routeIs('bo.convictionpages.*') || + request()->routeIs('bo.joinuspages.*') || request()->routeIs('bo.news.*')) active @endif dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-expanded="false"> {{ Str::of(trans_choice('models.classes.static_page', '*'))->title() }} @@ -88,6 +89,15 @@ @endcan + @can('viewAny', \App\Models\Joinuspage::class) +
* {{ __('crud.helpers.required_fields') }}
+| {{ $joinuspageModel->video_url }} | ++ {{ $joinuspageModel->updated_at->isoFormat('LLLL') }} + | ++ @canAny(['update'], $joinuspageModel) + + @else + + + + @endcan + | +
| {{ __('crud.other.no_model_found', ['model' => __('models.classes.joinuspage')]) }} | +