From 35f6d98dbc99725ddb2377c49f72f0c1e33e7ff3 Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Mon, 6 Nov 2023 09:32:11 +0100 Subject: [PATCH] update bo homepage: remove index page and redirect to the edit --- .../Controllers/Bo/HomepageController.php | 75 +++++-------------- app/Policies/HomepagePolicy.php | 11 --- database/factories/HomepageFactory.php | 12 +-- resources/views/bo/layouts/nav-list.blade.php | 28 +++---- .../views/bo/pages/homepages/edit.blade.php | 16 ++-- .../bo/pages/homepages/index-list.blade.php | 62 --------------- .../views/bo/pages/homepages/index.blade.php | 16 ---- routes/breadcrumbs-bo.php | 12 +-- routes/web-bo.php | 3 +- 9 files changed, 50 insertions(+), 185 deletions(-) delete mode 100644 resources/views/bo/pages/homepages/index-list.blade.php delete mode 100644 resources/views/bo/pages/homepages/index.blade.php diff --git a/app/Http/Controllers/Bo/HomepageController.php b/app/Http/Controllers/Bo/HomepageController.php index 31964aa..09f14ee 100644 --- a/app/Http/Controllers/Bo/HomepageController.php +++ b/app/Http/Controllers/Bo/HomepageController.php @@ -5,86 +5,49 @@ namespace App\Http\Controllers\Bo; use App\Http\Controllers\Controller; use App\Http\Requests\Bo\Homepage\UpdateHomepageRequest; use App\Models\Homepage; -use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; class HomepageController extends Controller { - /** - * Create the controller instance. - */ - public function __construct() - { - $this->authorizeResource(Homepage::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 $homepageModels */ - $homepageModels = Homepage::query(); - - /** @var string $search Search field */ - $search = $request->search; - if ($search) { - $this->searchQuery( - $homepageModels, - $search, - null, - 'title_part1', - 'title_part2', - 'title_part3' - ); - } - $searchFields = \implode(', ', [ - Str::ucfirst(trans('validation.attributes.title')) - ]); - - /** Sort columns with a query */ - $this->sortQuery($homepageModels); - - /** Custom pagination */ - $homepageModels = $this->paginate($homepageModels); - - return view('bo.pages.homepages.index', compact('homepageModels', 'search', 'searchFields')); - } - /** * Show the form for editing the specified resource. * - * @param App\Models\Homepage $homepage * @return \Illuminate\Contracts\View\View */ - public function edit(Homepage $homepage): \Illuminate\Contracts\View\View + public function edit(): \Illuminate\Contracts\View\View { - return view('bo.pages.homepages.edit', ['homepageModel' => $homepage]); + $this->authorize('update', \App\Models\Homepage::class); + + /** @var \App\Models\Homepage $homepageModel */ + $homepageModel = Homepage::query()->firstOrFail(); + + return view('bo.pages.homepages.edit', compact('homepageModel')); } /** * Update the specified resource in storage. * - * @param \App\Http\Requests\Bo\Homepages\UpdateHomepageRequest $request - * @param \App\Models\Homepage $homepage + * @param \App\Http\Requests\Bo\Homepage\UpdateHomepageRequest $request * @return \Illuminate\Http\RedirectResponse */ - public function update(UpdateHomepageRequest $request, Homepage $homepage): \Illuminate\Http\RedirectResponse + public function update(UpdateHomepageRequest $request): \Illuminate\Http\RedirectResponse { - return DB::transaction(function () use ($request, $homepage) { - $homepage->fill($request->validated()); + $this->authorize('update', \App\Models\Homepage::class); - if ($homepage->saveOrFail()) { - return redirect()->route('bo.homepages.edit', $homepage) + return DB::transaction(function () use ($request) { + /** @var \App\Models\Homepage $homepageModel */ + $homepageModel = Homepage::query()->firstOrFail(); + + $homepageModel->fill($request->validated()); + + if ($homepageModel->saveOrFail()) { + return redirect()->route('bo.homepages.edit') ->with('success', __('crud.messages.has_been_updated', [ 'model' => Str::ucfirst(__('models.classes.homepage')) ])); } - return redirect()->route('bo.homepages.edit', $homepage) + return redirect()->route('bo.homepages.edit') ->with('error', __('crud.messages.cannot_be_updated', [ 'model' => Str::ucfirst(__('models.classes.homepage')) ])); diff --git a/app/Policies/HomepagePolicy.php b/app/Policies/HomepagePolicy.php index 27ab78c..3271b7f 100644 --- a/app/Policies/HomepagePolicy.php +++ b/app/Policies/HomepagePolicy.php @@ -19,17 +19,6 @@ class HomepagePolicy return UserStaticRules::atLeastRole($authUser, RoleEnum::admin); } - /** - * Determine whether the user can view the model. - * - * @param \App\Models\User $authUser - * @return boolean - */ - public function view(User $authUser): bool - { - return UserStaticRules::atLeastRole($authUser, RoleEnum::admin); - } - /** * Determine whether the user can update the model. * diff --git a/database/factories/HomepageFactory.php b/database/factories/HomepageFactory.php index e5fea30..47e9d7d 100644 --- a/database/factories/HomepageFactory.php +++ b/database/factories/HomepageFactory.php @@ -14,12 +14,12 @@ class HomepageFactory extends Factory public function definition() { return [ - 'title_part1' => fake()->sentence(), - 'title_part2' => fake()->sentence(), - 'title_part3' => fake()->sentence(), - 'picture_alt' => fake()->sentence(), - 'picture_title' => fake()->sentence(), - 'presentation_title' => fake()->sentence(), + 'title_part1' => fake()->sentence(), + 'title_part2' => fake()->sentence(), + 'title_part3' => fake()->sentence(), + 'picture_alt' => fake()->sentence(), + 'picture_title' => fake()->sentence(), + 'presentation_title' => fake()->sentence(), 'presentation_content' => \clean(\fake()->randomHtml(6, 7)), ]; } diff --git a/resources/views/bo/layouts/nav-list.blade.php b/resources/views/bo/layouts/nav-list.blade.php index 233f916..978a22e 100644 --- a/resources/views/bo/layouts/nav-list.blade.php +++ b/resources/views/bo/layouts/nav-list.blade.php @@ -50,15 +50,15 @@ 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() }} + {{ Str::of(trans_choice('models.classes.static_page', '*'))->ucfirst() }}