FEATURE #1420: add functionality for editing widget area

This commit is contained in:
Michal Kváček
2016-02-15 10:27:33 +01:00
parent b290fb3ff5
commit 88d9ca48a3
4 changed files with 150 additions and 0 deletions
@@ -0,0 +1,74 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use App\Http\Requests\EditWidgetAreaRequest;
use App\Models\WidgetArea;
use Illuminate\Database\Eloquent\ModelNotFoundException;
class EditWidgetArea extends Controller
{
public function getEdit($id)
{
$area = WidgetArea::findOrFail($id);
return view('admin.widgets.area.edit', ['area' => $area]);
}
public function postEdit(EditWidgetAreaRequest $request, $id)
{
try {
$area = WidgetArea::findOrFail($id);
} catch (ModelNotFoundException $e) {
return $this->invalidArea();
}
$area->name = $request->name;
$area->description = $request->description;
$area->save();
return redirect()
->route('widgetareas.edit', ['id' => $id])
->with('success', trans('admin/widgetAreas.editSuccessfull'));
}
/**
* Hard deletes widget area
*
* @param $id
*
* @return \Illuminate\Http\RedirectResponse
*/
public function deleteArea($id)
{
// try to find area
try {
$area = WidgetArea::findOrFail($id);
} catch (ModelNotFoundException $e) {
return $this->invalidArea();
}
// delete area
$area->delete();
// redirect and inform user
return redirect()
->route('widgetareas.overview')
->with('success', trans('admin/widgetAreas.successfullyDeleted'));
}
/**
* Redirect user to overview with message about invalid widget area
*
* @return \Illuminate\Http\RedirectResponse
*/
private function invalidArea()
{
return redirect()
->route('widgetareas.overview')
->with('error', trans('admin/widgetAreas.invalidArea'));
}
}
@@ -0,0 +1,18 @@
<?php
namespace App\Http\Requests;
class EditWidgetAreaRequest extends Request
{
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
];
}
}