get(); return view('back.homepage_slides.index', compact('homepageslides')); } /** * Show the form for creating a new resource. * * @param HomepageSlide $homepageslide * @return \Illuminate\Contracts\View\View * @ignore phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass */ public function create(HomepageSlide $homepageslide): \Illuminate\Contracts\View\View { return view('back.homepage_slides.create', compact('homepageslide')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\StoreHomepageSlideRequest $request * @return \Illuminate\Http\RedirectResponse */ public function store(StoreHomepageSlideRequest $request): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request) { $homepageslide = new HomepageSlide($request->validated()); $homepageslide->order = $this->getLastOrder(); $homepageslide->picture = ToolboxHelper::storeImage($request->picture, $homepageslide->getTable()); if ($homepageslide->saveOrFail()) { return to_route('bo.homepageslides.edit', $homepageslide->id) ->with('success', trans(__('Creation_saved'))); } return back()->with('error', trans(__('Creation_failed'))); }); } /** * Show the form for editing the specified resource. * * @param HomepageSlide $homepageslide * @return \Illuminate\Contracts\View\View */ public function edit(HomepageSlide $homepageslide): \Illuminate\Contracts\View\View { return view('back.homepage_slides.edit', compact('homepageslide')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\StoreHomepageSlideRequest $request * @param HomepageSlide $homepageslide * @return \Illuminate\Http\RedirectResponse * @ignore phpcs:disable Generic.Files.LineLength.TooLong */ public function update(StoreHomepageSlideRequest $request, HomepageSlide $homepageslide): \Illuminate\Http\RedirectResponse { return DB::transaction(function () use ($request, $homepageslide) { $homepageslide->fill($request->validated()); if ($homepageslide->saveOrFail()) { return to_route('bo.homepageslides.edit', $homepageslide->id) ->with('success', trans(__('Changes_saved'))); } return to_route('bo.homepageslides.edit', $homepageslide->id) ->with('error', trans(__('Changes_failed'))); }); } /** * Remove the specified resource from storage. * * @param HomepageSlide $homepageslide * @return \Illuminate\Http\RedirectResponse */ public function destroy(HomepageSlide $homepageslide): \Illuminate\Http\RedirectResponse { if (!$homepageslide->delete()) { return to_route('bo.homepageslides.index')->with('error', trans('La suppression a échoué')); } return to_route('bo.homepageslides.index')->with('success', trans('Suppression faite avec succès')); } /** * Remove the specified resource from storage. * * @param UpdateChangeOrderRequest $request * @param HomepageSlide $homepageslide * @return \Illuminate\Http\RedirectResponse * @ignore phpcs:disable Generic.Files.LineLength.TooLong */ public function changeOrder(UpdateChangeOrderRequest $request, HomepageSlide $homepageslide): \Illuminate\Http\RedirectResponse { if ($request->validated()['action'] === 'up') { $tmp = HomepageSlide::where('order', '<', $homepageslide->order) ->orderBy('order', 'DESC')->first(); $newOrder = $tmp->order; $tmp->order = $homepageslide->order; $homepageslide->order = $newOrder; } elseif ($request->validated()['action'] === 'down') { $tmp = HomepageSlide::where('order', '>', $homepageslide->order) ->orderBy('order', 'ASC')->first(); $newOrder = $tmp->order; $tmp->order = $homepageslide->order; $homepageslide->order = $newOrder; } else { return to_route('bo.homepage_slides.index'); } $tmp->save(); $homepageslide->save(); return back(); } /** * Get by order the last element of the list. * * @return integer */ private function getLastOrder(): int { $order = HomepageSlide::select('order')->orderBy('order', 'DESC')->first(); if ($order === null) { return 1; } return $order->order + 1; } }