diff --git a/app/Http/Controllers/Bo/ExplorerpageController.php b/app/Http/Controllers/Bo/ExplorerpageController.php new file mode 100644 index 0000000..3b0adf3 --- /dev/null +++ b/app/Http/Controllers/Bo/ExplorerpageController.php @@ -0,0 +1,95 @@ +authorizeResource(Explorerpage::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 $explorerpageModels */ + $explorerpageModels = Explorerpage::query(); + + /** @var string $search Search field */ + $search = $request->search; + if ($search) { + $this->searchQuery( + $explorerpageModels, + $search, + null, + 'picture_1_title', + 'picture_2_title', + 'picture_3_title' + ); + } + $searchFields = \implode(', ', [ + Str::ucfirst(trans('validation.attributes.title')) + ]); + + /** Sort columns with a query */ + $this->sortQuery($explorerpageModels); + + /** Custom pagination */ + $explorerpageModels = $this->paginate($explorerpageModels); + + return view('bo.pages.explorerpages.index', compact('explorerpageModels', 'search', 'searchFields')); + } + + /** + * Show the form for editing the specified resource. + * + * @param App\Models\Explorerpage $explorerpage + * @return \Illuminate\Contracts\View\View + */ + public function edit(Explorerpage $explorerpage): \Illuminate\Contracts\View\View + { + return view('bo.pages.explorerpages.edit', ['explorerpageModel' => $explorerpage]); + } + + /** + * Update the specified resource in storage. + * + * @param \App\Http\Requests\Bo\Explorerpages\UpdateExplorerpageRequest $request + * @param \App\Models\Explorerpage $explorerpage + * @return \Illuminate\Http\RedirectResponse + */ + public function update( + UpdateExplorerpageRequest $request, + Explorerpage $explorerpage + ): \Illuminate\Http\RedirectResponse { + return DB::transaction(function () use ($request, $explorerpage) { + $explorerpage->fill($request->validated()); + + if ($explorerpage->saveOrFail()) { + return redirect()->route('bo.explorerpages.edit', $explorerpage) + ->with('success', __('crud.messages.has_been_updated', [ + 'model' => Str::ucfirst(__('models.classes.explorerpage')) + ])); + } + return redirect()->route('bo.explorerpages.edit', $explorerpage) + ->with('error', __('crud.messages.cannot_be_updated', [ + 'model' => Str::ucfirst(__('models.classes.explorerpage')) + ])); + }); + } +} diff --git a/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php b/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php new file mode 100644 index 0000000..1c91365 --- /dev/null +++ b/app/Http/Requests/Bo/Explorerpage/StoreExplorerpageRequest.php @@ -0,0 +1,57 @@ +check(); + } + + /** + * Prepare the data for validation. + * + * @return void + */ + protected function prepareForValidation() + { + $this->mergePicture('picture_1'); + $this->mergePicture('picture_2'); + $this->mergePicture('picture_3'); + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + 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', + ]; + + return \array_merge( + $rules, + $this->pictureRules('picture_1', 265, 364, 265, 364, false), + $this->pictureRules('picture_2', 265, 364, 265, 364, false), + $this->pictureRules('picture_3', 265, 364, 265, 364, false), + ); + } +} diff --git a/app/Http/Requests/Bo/Explorerpage/UpdateExplorerpageRequest.php b/app/Http/Requests/Bo/Explorerpage/UpdateExplorerpageRequest.php new file mode 100644 index 0000000..d2762e4 --- /dev/null +++ b/app/Http/Requests/Bo/Explorerpage/UpdateExplorerpageRequest.php @@ -0,0 +1,18 @@ + 'stamp', 'commitment' => 'commitment', 'range' => 'range', - 'homepage' => 'homepage' + 'homepage' => 'home page', + 'explorerpage' => 'explorer page', ] ]; diff --git a/resources/lang/en/validation.php b/resources/lang/en/validation.php index df49a2e..49aab12 100644 --- a/resources/lang/en/validation.php +++ b/resources/lang/en/validation.php @@ -242,6 +242,9 @@ return [ 'unpublish_at' => 'end of publication date', 'background' => 'background', 'picture' => 'picture', + 'picture_1' => 'picture one', + 'picture_2' => 'picture two', + 'picture_3' => 'picture three', 'presentation_title' => 'presentation title', 'title_part1' => 'title part one', 'title_part2' => 'title part two', diff --git a/resources/lang/fr/models.php b/resources/lang/fr/models.php index 3dc2ec3..f5661eb 100644 --- a/resources/lang/fr/models.php +++ b/resources/lang/fr/models.php @@ -11,5 +11,6 @@ return [ 'homepage' => 'page d\'accueil', 'news' => 'actualité', 'stamp' => 'tampon', + 'explorerpage' => 'page explorateur', ] ]; diff --git a/resources/lang/fr/validation.php b/resources/lang/fr/validation.php index b86718c..679e364 100644 --- a/resources/lang/fr/validation.php +++ b/resources/lang/fr/validation.php @@ -244,6 +244,9 @@ return [ 'unpublish_at' => 'date de fin de publication', 'background' => 'fond', 'picture' => 'image', + 'picture_1' => 'image une', + 'picture_2' => 'image deux', + 'picture_3' => 'image trois', 'presentation_title' => 'titre de présentation', 'title_part1' => 'première partie du titre', 'title_part2' => 'seconde partie du titre', diff --git a/resources/views/bo/layouts/nav-list.blade.php b/resources/views/bo/layouts/nav-list.blade.php index 8a40904..1bba1c8 100644 --- a/resources/views/bo/layouts/nav-list.blade.php +++ b/resources/views/bo/layouts/nav-list.blade.php @@ -53,7 +53,7 @@
* {{ __('crud.helpers.required_fields') }}
+|
+ |
+ {{ $explorerpageModel->picture_1_title }}1 | +
+ |
+ {{ $explorerpageModel->picture_2_title }}2 | +
+ |
+ {{ $explorerpageModel->picture_3_title }} | ++ {{ $explorerpageModel->updated_at->isoFormat('LLLL') }} + | + @php + $routeName = request() + ->route() + ->getName(); + @endphp ++ @canAny(['update'], $explorerpageModel) + + @else + + + + @endcan + | +
| {{ __('crud.other.no_model_found', ['model' => __('models.classes.explorerpage')]) }} | +