From 1b2d7db8f37ae2344869a89125b55825a46e6029 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Thu, 28 Jan 2016 13:38:30 +0100 Subject: [PATCH] FEATURE: add quick actions to static page overview --- .../Http/Controllers/Admin/EditStaticPage.php | 84 +++++++++++++++++++ modules/StaticPages/Http/routes.php | 18 +++- .../StaticPages/Resources/lang/en/admin.php | 10 ++- .../Resources/views/admin/overview.blade.php | 35 +++++--- resources/assets/css/admin.css | 1 - 5 files changed, 133 insertions(+), 15 deletions(-) diff --git a/modules/StaticPages/Http/Controllers/Admin/EditStaticPage.php b/modules/StaticPages/Http/Controllers/Admin/EditStaticPage.php index e5d86fc0..42315879 100644 --- a/modules/StaticPages/Http/Controllers/Admin/EditStaticPage.php +++ b/modules/StaticPages/Http/Controllers/Admin/EditStaticPage.php @@ -1,10 +1,94 @@ route('staticpage.overview') + ->with('error', trans('staticpages::admin.invalidStatus')); + } + + try { + // try to find this page + $page = Content::where('module_handler', config('staticpages.handler')) + ->findOrFail($id); + + // page found, save status + $page->status = $status; + + $page->save(); + + // redirect back to overview with info for user + return redirect() + ->route('staticpage.overview') + ->with('success', trans('staticpages::admin.statusChanged')); + } catch (NotFoundHttpException $e) { + // page not found + return redirect() + ->route('staticpage.overview') + ->with('error', trans('staticpages::admin.invalidPage')); + } + } + + /** + * Delete page + * + * @param $id + * + * @return \Illuminate\Http\RedirectResponse + */ + public function deletePage($id) + { + try { + // try to find this page + $page = Content::where('module_handler', config('staticpages.handler')) + ->findOrFail($id); + + // page found, save status + $page->status = Content::STATUS_DELETED; + + $page->save(); + + // redirect back to overview with info for user + return redirect() + ->route('staticpage.overview') + ->with('success', trans('staticpages::admin.pageDeleted', [ + 'name' => $page->title, + 'url' => $page->url + ])); + } catch (NotFoundHttpException $e) { + // page not found + return redirect() + ->route('staticpage.overview') + ->with('error', trans('staticpages::admin.invalidPage')); + } + } } \ No newline at end of file diff --git a/modules/StaticPages/Http/routes.php b/modules/StaticPages/Http/routes.php index 40bc73c1..cbcee5fa 100644 --- a/modules/StaticPages/Http/routes.php +++ b/modules/StaticPages/Http/routes.php @@ -8,7 +8,6 @@ Route::group([ Route::get('/{url}', 'StaticPagesController@index'); }); - // routes group for admin area Route::group([ 'middleware' => ['web', 'auth'], @@ -31,4 +30,21 @@ Route::group([ // post method for creating new static page Route::post('new', 'CreateNewStaticPage@postNew') ->name('staticpage.newPost'); + + // routes for quick actions + + // change status of page (protected, public or draft) + Route::get('status/{id}/{status}', 'EditStaticPage@changeStatus') + ->name('staticpage.changeStatus'); + + + // delete page + Route::get('delete/{id}', 'EditStaticPage@deletePage') + ->name('staticpage.delete'); + + // display change history of given page + // Route::get('history/{id}', 'StaticPageHistory@getHistory')->name('staticpage.history'); + + + // Route::get('', '')->name('staticpage.'); }); \ No newline at end of file diff --git a/modules/StaticPages/Resources/lang/en/admin.php b/modules/StaticPages/Resources/lang/en/admin.php index 45a8ab68..63ab29b6 100644 --- a/modules/StaticPages/Resources/lang/en/admin.php +++ b/modules/StaticPages/Resources/lang/en/admin.php @@ -18,6 +18,12 @@ return [ 'viewPage' => 'View page on web', 'edit' => 'Edit page', 'deletePage' => 'Delete page (ireversible!)', - 'makePublic' => 'Publish page', - 'makeDraft' => 'Disable page and make it draft' + 'makePublic' => 'Publish page', + 'makeProtected' => 'Publish page only for logged users', + 'makeDraft' => 'Disable page and make it draft', + 'invalidStatus' => 'Cannot change status to something undefined.', + 'statusChanged' => 'Status successfully changed.', + 'invalidPage' => 'Specified page does not exist.', + 'pageDeleted' => 'Page :name (:url) successfully deleted.' + ]; \ No newline at end of file diff --git a/modules/StaticPages/Resources/views/admin/overview.blade.php b/modules/StaticPages/Resources/views/admin/overview.blade.php index c38adb17..2ded01a8 100644 --- a/modules/StaticPages/Resources/views/admin/overview.blade.php +++ b/modules/StaticPages/Resources/views/admin/overview.blade.php @@ -3,6 +3,18 @@ @section('content')

@lang('staticpages::admin.overview')

+ + @if (session('success')) +
+ {{ session('success') }} +
+ @endif + + @if (session('error')) +
+ {{ session('error') }} +
+ @endif
@@ -19,15 +31,15 @@ {{--
--}}

{{$page->title}}

- {{$page->created_at}} + {{date('d.m.Y', strtotime($page->created_at))}} {{$page->author_name}}

- @if (trim($page->meta_description)) - {{str_limit($page->meta_description)}} - @else - {{str_limit(strip_tags($page->content))}} - @endif + @if (trim($page->meta_description)) + {{str_limit($page->meta_description)}} + @else + {{str_limit(strip_tags($page->content))}} + @endif

@if ($page->meta_keywords) @@ -36,18 +48,19 @@

- - + {{----}} + @if($page->status == \App\Models\Content::STATUS_DRAFT) - + + @endif @if(in_array($page->status, [\App\Models\Content::STATUS_PROTECTED, \App\Models\Content::STATUS_PUBLIC])) - + @endif - +

diff --git a/resources/assets/css/admin.css b/resources/assets/css/admin.css index 3983f666..8583030c 100644 --- a/resources/assets/css/admin.css +++ b/resources/assets/css/admin.css @@ -60,7 +60,6 @@ #static-page-overview .keywords { margin-bottom: 0; font-size: 80%; - background:red; } .red {