Files
bappli-jurassic-land/app/Http/Controllers/PaddockController.php

128 lines
2.9 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Paddock;
use App\PaddockStateChange;
use Redirect;
class PaddockController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$data['paddocks'] = Paddock::orderBy('id')->paginate(10);
return view('paddock.list', $data);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('paddock.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'name' => 'required',
]);
Paddock::create($request->all());
return Redirect::to('paddocks')
->with('success', 'Enclos créé avec succès.');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
//
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$data['paddock'] = Paddock::where('id', $id)->first();
return view('paddock.edit', $data);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$request->validate([
'name' => 'required',
]);
// Was there a state change?
$paddock = Paddock::find($id);
$state_changed = FALSE;
if ($paddock->isClosed && ($request->state === 'opened')) {
$state_changed = TRUE;
} else if (!$paddock->isClosed && ($request->state === 'closed')) {
$state_changed = TRUE;
}
// Record the state change, if needs be
if ($state_changed) {
$change = new PaddockStateChange(['state' => $request->state]);
$paddock->state_changes()->save($change);
}
$update = [
'name' => $request->name,
'isClosed' => $request->state !== 'opened',
];
$paddock->update($update);
return Redirect::to('paddocks')
->with('success', 'Enclos mis à jour.');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
Paddock::where('id', $id)->delete();
return Redirect::to('paddocks')
->with('success', 'Enclos supprimé.');
}
}