FEATURE: use more route model binding

This commit is contained in:
Michal Kváček
2017-08-01 19:10:55 +02:00
parent a7e91ef499
commit 3275e5aeed
22 changed files with 163 additions and 159 deletions
@@ -7,6 +7,8 @@ use App\CMS\Interactions\Admin\Content\ChangeStatus;
use App\CMS\Interactions\Admin\Content\DeletePage;
use App\CMS\Interactions\Admin\Content\SetHomepage;
use App\Http\Controllers\Admin\Controller;
use App\Models\Content\Content;
use App\Models\Content\ContentHistory;
class ContentActions extends Controller
{
@@ -25,15 +27,13 @@ class ContentActions extends Controller
* This method is called in static page overview from quick actions. It checks if status is valid, if page exists
* and updates status.
*
* @param $id
* @param $status
* @param Content $page
* @param $status
*
* @return \Illuminate\Http\RedirectResponse
*/
public function changeStatus($id, $status)
public function changeStatus(Content $page, $status)
{
$page = $this->content->getOne($id);
Interaction::handle(ChangeStatus::class, ['status' => $status], $page);
// redirect back to overview with info for user
@@ -45,14 +45,12 @@ class ContentActions extends Controller
/**
* Delete page
*
* @param $id
* @param Content $page
*
* @return \Illuminate\Http\RedirectResponse
*/
public function delete($id)
public function delete(Content $page)
{
$page = $this->content->getOne($id);
Interaction::handle(DeletePage::class, [], $page);
// redirect back to overview with info for user
@@ -66,14 +64,12 @@ class ContentActions extends Controller
/**
* Sets page as homepage
*
* @param $id
* @param Content $page
*
* @return \Illuminate\Http\RedirectResponse
*/
public function setHomepage($id)
public function setHomepage(Content $page)
{
$page = $this->content->getOne($id);
Interaction::handle(SetHomepage::class, [], $page);
// redirect back to overview with info for user
@@ -5,6 +5,7 @@ use App\CMS\Contracts\Repositories\Content as IContent;
use App\CMS\Contracts\Repositories\Module as IModule;
use App\CMS\Enumerations\ContentStatuses;
use App\Http\Controllers\Admin\Controller;
use App\Models\Module;
class ContentOverview extends Controller
{
@@ -26,19 +27,19 @@ class ContentOverview extends Controller
/**
* Overview for all content pages.
*
* @param null|int $moduleId
* @param null $status
* @param Module|null $module
* @param null $status
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
* @internal param int|null $moduleId
*/
public function index($moduleId = null, $status = null)
public function index(Module $module = null, $status = null)
{
// get module settings
$module = $this->module->getOne($moduleId);
$pageHeading = $this->module->getOverviewTitle($module);
// get pages for overview
$handler = $module !== null ? $module->handler : null;
$handler = $module->exists ? $module->handler : null;
$pages = $this->content->getOverview($handler, [$status])
->paginate(setting('paginatedResults', 20));
@@ -10,6 +10,7 @@ use App\Cms\Interactions\Admin\Content\NewContent;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\CreateNewContentRequest;
use App\Http\Requests\Request;
use App\Models\Module;
use Modules\Categories\Contracts\Repositories\Category as ICategory;
/**
@@ -67,9 +68,8 @@ class CreateNewContent extends Controller
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function create($module)
public function create(Module $module)
{
$module = $this->module->getOne($module);
$statuses = ContentStatuses::getWithTranslations();
$pageHeading = $this->module->getCreateContentTitle($module);
$templates = $this->template->getForModule($module);
@@ -95,15 +95,14 @@ class CreateNewContent extends Controller
/**
* Save new content page
*
* @param CreateNewContentRequest $request
* @param $moduleId
* @param CreateNewContentRequest|Request $request
* @param Module $module
*
* @return \Illuminate\Http\RedirectResponse
* @internal param $moduleId
*/
public function store(Request $request, $moduleId)
public function store(Request $request, Module $module)
{
$module = $this->module->getOne($moduleId);
// create new page
Interaction::handle(NewContent::class, $request->all(), $module->handler);
@@ -72,14 +72,13 @@ class EditContent extends Controller
/**
* Display form for editing static page
*
* @param $id
* @param Content $page
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function edit($id)
public function edit(Content $page)
{
$statuses = ContentStatuses::getWithTranslations();
$page = $this->content->getOne($id);
// get module ID
$module = $this->module->getByHandler($page->moduleHandler);
@@ -106,29 +105,14 @@ class EditContent extends Controller
/**
* Edit static page and save changes into history.
*
* @param EditContentRequest $request
* @param $id
* @param EditContentRequest|Request $request
* @param Content $page
*
* @return \Illuminate\Http\RedirectResponse
* @internal param $id
*/
public function update(Request $request, $id)
public function update(Request $request, Content $page)
{
try {
/**
* @var $page Content
*/
$page = $this->content->getOne($id);
} catch (NotFoundHttpException $e) {
// log attempt of invalid edit
Event::fire(new AttemptToEditInvalidContent($id));
// page for editing not found
return redirect()
->route('content.overview')
->with('error', trans('admin/contents.invalidPage'));
}
// edit page
Interaction::handle(EditContentInteraction::class, $request->all(), $page);
+12 -11
View File
@@ -19,30 +19,31 @@ class History extends Controller
}
/**
* @param $id
* @param Content $page
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getOverview($id)
public function getOverview(Content $page)
{
// test if given content id is static page and if exists
$content = Content::findOrFail($id);
$history = $this->history->getStructuredHistoryOf($content);
$history = $this->history->getStructuredHistoryOf($page);
return view('admin/history.overview', [
'history' => $history,
'page' => $content
'page' => $page
]);
}
public function getDiff($revision, $id)
/**
* @param ContentHistory $revision
*
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function getDiff(ContentHistory $revision)
{
$change = $this->history->findOrFail($id);
$diff = $this->history->getDiff($change);
$diff = $this->history->getDiff($revision);
return view('admin/history.diff', [
'change' => $change,
'change' => $revision,
'diff' => $diff
]);
}
@@ -32,12 +32,12 @@ class UploadedFilesOverview extends Controller
*/
public function index(Directory $directory = null)
{
// include hidden directories?
$includeHidden = Input::get('hidden');
// dd($directory);
// include hidden directories?
$subdirectories = $this->directoryRepository->getAllSubdirectories($directory);
if (!$includeHidden) {
if (!Input::get('hidden', true)) {
$subdirectories = $subdirectories->where('hidden', false);
}
@@ -3,6 +3,7 @@
namespace App\Http\Controllers\Admin\Widgets\Areas;
use App\CMS\Repositories\Widgets\WidgetArea as WidgetAreaRepository;
use App\Events\DeleteWidgetArea;
use App\Http\Controllers\Admin\Controller;
use App\Http\Requests\EditWidgetAreaRequest;
use App\Models\Widgets\Widget;
@@ -39,6 +40,7 @@ class EditWidgetArea extends Controller
*/
public function edit(WidgetArea $widgetArea)
{
return view("test");
$associatedWidgetIds = WidgetInWidgetArea::getWidgetIdsFromArea($widgetArea->id);
$widgets = Widget::where('language', LaravelLocalization::getCurrentLocale())
->paginate(25);
@@ -83,26 +85,14 @@ class EditWidgetArea extends Controller
}
// delete area
$area->delete();
$widgetArea->delete();
// fire event with new widget area
Event::fire(new \App\Events\DeleteWidgetArea($area));
Event::fire(new DeleteWidgetArea($widgetArea));
// 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'));
}
}