ldc-doux/app/Http/Controllers/Bo/PictosController.php
2022-08-29 17:23:10 +02:00

115 lines
3.5 KiB
PHP

<?php
namespace App\Http\Controllers\Bo;
use App\Enums\Page;
use App\Http\Controllers\Controller;
use App\Http\Requests\StorePictoRequest;
use App\Http\Requests\UpdatePictoRequest;
use App\Lib\Utils;
use App\Models\Picto;
class PictosController extends Controller
{
/**
* Display a listing of the resource.
*
* @param Page $page
*
* @return \Illuminate\Http\Response
*/
public function index(Page $page)
{
$pictos = Picto::where('page', $page)->get();
return view('back.pictos.index', compact('pictos'));
}
/**
* Show the form for creating a new resource.
*
* @param Picto $picto
* @return \Illuminate\Http\Response
*
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
*/
public function create(Picto $picto)
{
return view('back.pictos.create', compact('picto'));
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\StorePictoRequest $request
* @return \Illuminate\Http\Response
*/
public function store(StorePictoRequest $request)
{
$picto = new Picto($request->validated());
if (is_a($request->picture, "SplFileInfo")) {
$picto->picture = Utils::storeImage($request->picture, $picto->getTable());
}
// On ne peut pas arbitrairement créer tous les pictos à cet endroit.
// J'ai du décommenter cette ligne pour la création picto fonctionne.
$picto->page = Page::marqueBloc2();
if (!$picto->saveOrFail()) {
return redirect()->route('bo.pictos.edit', $picto->id)->with('error', 'Le pictogramme n\'a pas été crée');
}
return redirect()->route('bo.pictos.edit', $picto->id)->with('success', 'Pictogramme créé !');
}
/**
* Show the form for editing the specified resource.
*
* @param Picto $picto
* @return \Illuminate\Http\Response
*
* @phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.FoundInExtendedClass
*/
public function edit(Picto $picto)
{
return view('back.pictos.edit', compact('picto'));
}
/**
* Update the specified resource in storage.
*
* @param Picto $picto
* @param \Illuminate\Http\UpdatePictoRequest $request
* @return \Illuminate\Http\Response
*/
public function update(Picto $picto, UpdatePictoRequest $request)
{
$picto->fill($request->validated());
if (is_a($request->picture, "SplFileInfo")) {
$picto->picture = Utils::storeImage($request->picture, $picto->getTable());
}
if (!$picto->saveOrFail()) {
return redirect()->route('bo.pictos.edit', $picto->id)
->with('error', trans('La modification a échoué'));
}
return redirect()->route('bo.pictos.edit', $picto->id)
->with('success', trans('Modifications enregistrées !'));
}
/**
* Remove the specified resource from storage.
*
* @param Picto $picto
* @return \Illuminate\Http\Response
*/
public function destroy(Picto $picto)
{
if (!$picto->delete()) {
return redirect()->route('bo.pictos.content', $picto->page)
->with('error', trans('La suppression a échoué'));
}
return redirect()->route('bo.pictos.content', $picto->page)
->with('success', trans('Suppression faite avec succès'));
}
}