FEATURE: split controllers/admin into more smaller directories

This commit is contained in:
Michal Kváček
2016-09-22 23:35:53 +02:00
parent 0357417163
commit 139373145a
41 changed files with 374 additions and 412 deletions
@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin\Widgets\Areas;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\NewWidgetAreaRequest;
use App\Models\WidgetArea;
use Illuminate\Support\Facades\Event;
class CreateNewWidgetArea extends Controller
{
/**
* Form for new widget area
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getNew()
{
return view('admin.widgets.area.new', ['area' => new WidgetArea()]);
}
/**
* @param NewWidgetAreaRequest $request
*
* @return \Illuminate\Http\RedirectResponse
*/
public function postNew(NewWidgetAreaRequest $request)
{
$parameters = [
'code' => $request->code,
'name' => $request->name,
'description' => $request->description
];
$area = WidgetArea::create($parameters);
// fire event with new widget area
Event::fire(new \App\Events\CreateNewWidgetArea($area));
// redirect with success notification
return redirect()
->route('widgetareas.overview')
->with('success', trans('admin/widgetAreas.successfullyCreated'));
}
}
@@ -0,0 +1,100 @@
<?php
namespace App\Http\Controllers\Admin\Widgets\Areas;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\EditWidgetAreaRequest;
use App\Models\WidgetArea;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Illuminate\Support\Facades\Event;
class EditWidgetArea extends Controller
{
/**
* Display form for editing given widget area
*
* @param $id
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getEdit($id)
{
$area = WidgetArea::findOrFail($id);
return view('admin.widgets.area.edit', ['area' => $area]);
}
/**
* @param EditWidgetAreaRequest $request
* @param $id
*
* @return \Illuminate\Http\RedirectResponse
*/
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();
// fire event with new widget area
Event::fire(new \App\Events\EditWidgetArea($area));
return redirect()
->route('widgetareas.overview')
->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();
}
// check if widget area is deletable
if (!$area->deletable) {
return redirect()
->back()
->with('error', trans('admin/widgetAreas.notDeletableArea'));
}
// delete area
$area->delete();
// fire event with new widget area
Event::fire(new \App\Events\DeleteWidgetArea($area));
// 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,24 @@
<?php
namespace App\Http\Controllers\Admin\Widgets\Areas;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests;
use App\Models\WidgetArea;
class WidgetAreaOverview extends Controller
{
/**
* List of all widget area. Displayed paginated
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getOverview()
{
// get widget areas ordered by created_at
$areas = WidgetArea::orderBy('created_at', 'DESC')
->paginate(25);
return view('admin.widgets.area.overview', ['areas' => $areas]);
}
}