From 85c33e9ada6bacb1de3fbf62c4b9f3813426fba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20Kv=C3=A1=C4=8Dek?= Date: Wed, 6 Apr 2016 20:19:11 +0200 Subject: [PATCH] FEATURE: make overview in content pages little bit cleaner --- .../Controllers/Admin/ContentOverview.php | 2 +- app/Models/Content.php | 28 ++-- resources/assets/css/admin.css | 49 +++--- resources/lang/en/admin/contents.php | 15 +- .../admin/content/overviewTiles.blade.php | 142 ++++++++++-------- 5 files changed, 129 insertions(+), 107 deletions(-) diff --git a/app/Http/Controllers/Admin/ContentOverview.php b/app/Http/Controllers/Admin/ContentOverview.php index 592b68e7..95954ec4 100644 --- a/app/Http/Controllers/Admin/ContentOverview.php +++ b/app/Http/Controllers/Admin/ContentOverview.php @@ -39,7 +39,7 @@ class ContentOverview extends Controller } // get pages for overview - $pages = $this->content->getOverview($moduleFilterHandler, $status, true) + $pages = $this->content->getOverview($moduleFilterHandler, $status, true, true) ->paginate($perPage); // get homepage - for checking if homepage is set and available diff --git a/app/Models/Content.php b/app/Models/Content.php index 18dbfe40..85db80f5 100644 --- a/app/Models/Content.php +++ b/app/Models/Content.php @@ -96,37 +96,41 @@ class Content extends Model /** * Is current content draft? - * + * * @return bool */ - public function isDraft() { + public function isDraft() + { return $this->status == self::STATUS_DRAFT; } /** * Is current content visible for all visitors? - * + * * @return bool */ - public function isPublic() { + public function isPublic() + { return $this->status == self::STATUS_PUBLIC; } /** * Is current content visible only for logged users? - * + * * @return bool */ - public function isProtected() { + public function isProtected() + { return $this->status == self::STATUS_PROTECTED; } /** * Is current content visible for logged user OR for everyone? - * + * * @return bool */ - public function isVisible() { + public function isVisible() + { return $this->isPublic() || $this->isProtected(); } @@ -157,7 +161,7 @@ class Content extends Model * * @return */ - public function getOverview($handler = false, $status = false, $joinAuthor = false) + public function getOverview($handler = false, $status = false, $joinAuthor = false, $joinParent = false) { $query = DB::table('contents') ->select('contents.*', 'modules.name AS module_name') @@ -177,6 +181,12 @@ class Content extends Model ->addSelect('users.email AS author_email'); } + if ($joinParent) { + $query = $query->join('contents as parent', 'parent.id', '=', 'contents.parent_id') + ->addSelect('parent.title AS parent_title') + ->addSelect('parent.url AS parent_url'); + } + // add filtering by status if (in_array($status, ContentStatuses::getSimple())) { $query = $query->where('contents.status', $status); diff --git a/resources/assets/css/admin.css b/resources/assets/css/admin.css index c5b041ba..cb69e4df 100644 --- a/resources/assets/css/admin.css +++ b/resources/assets/css/admin.css @@ -99,38 +99,31 @@ code { left: 0; } -#static-page-overview .page { - position: relative; - padding-bottom: 3em; -} - -#static-page-overview .page .controls { - position: absolute; - bottom: 0; -} - -#static-page-overview .page .controls .button { - margin-bottom: 10px; -} - -#static-page-overview .date, #static-page-overview .author { - font-size: 80%; - -} - -#static-page-overview .perex { - -} - -#static-page-overview .keywords { - margin-bottom: 0; - font-size: 80%; -} - #appearance .title-photo img { max-height: 10em; } +.page img { + max-height: 7em; +} + +.page .parent, .page .date, .page .author { + font-style: italic; + font-size: 75%; +} + +.page.draft { + opacity: 0.5; +} + +.page.draft:hover { + opacity: 1; +} + +.page.protected { + border-color: orange; +} + .red { color: red; } diff --git a/resources/lang/en/admin/contents.php b/resources/lang/en/admin/contents.php index 1aaf3ae9..7127fffe 100644 --- a/resources/lang/en/admin/contents.php +++ b/resources/lang/en/admin/contents.php @@ -19,11 +19,11 @@ return [ 'field_published_to' => 'Published to', 'successfullyCreated' => 'Page successfully created', 'noPagesAvailable' => 'No static pages available. Try to create one first.', - 'viewPage' => 'View page on web', - 'deletePage' => 'Delete page (ireversible!)', - 'makePublic' => 'Publish page', - 'makeProtected' => 'Publish page only for logged users', - 'makeDraft' => 'Disable page and make it draft', + 'viewPage' => 'View', + 'deletePage' => 'Delete', + 'makePublic' => 'Publish', + 'makeProtected' => 'Logged users only', + 'makeDraft' => 'Make draft', 'invalidStatus' => 'Cannot change status to something undefined.', 'statusChanged' => 'Status successfully changed.', 'invalidPage' => 'Specified page does not exist.', @@ -39,5 +39,8 @@ return [ 'noParentPage' => ' -- No parent page -- ', 'uploadTitleImage' => 'Upload title image', 'noHomepage' => 'You have not set up your homepage yet, or your current homepage is draft! Try to select another one.', - 'homepageProtected' => 'Your homepage is displayed only for logged in users. This may or may not be an error.' + 'homepageProtected' => 'Your homepage is displayed only for logged in users. This may or may not be an error.', + 'parentPage' => 'Parent page', + 'alreadyHomepage' => 'Homepage' + ]; \ No newline at end of file diff --git a/resources/views/admin/content/overviewTiles.blade.php b/resources/views/admin/content/overviewTiles.blade.php index 76f90c11..67c4422d 100644 --- a/resources/views/admin/content/overviewTiles.blade.php +++ b/resources/views/admin/content/overviewTiles.blade.php @@ -1,67 +1,83 @@ -
- @forelse($pages as $page) -
-
- @if ($page->title_photo) - - @endif +@forelse($pages as $page) +
+
+ @if ($page->parent_id && $page->parent_url) + + @lang('admin/contents.parentPage'): + {{$page->parent_title}}, + + @endif -

{{$page->title}}

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

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

- - @if ($page->meta_keywords) -

{{$page->meta_keywords}}

- @endif - -

- @if($page->is_homepage) - - @else - - @endif - - - - @if($page->status == \App\Models\Content::STATUS_DRAFT) - - - @else - - - @endif - - -

-
- @empty - @lang('admin/contents.noPagesAvailable') - @endforelse -
\ No newline at end of file + +
+ @if ($page->title_photo) + + + + @endif +
+
+

+ + {{$page->title}} + (@lang($page->module_name)) + +

+ +

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

+
+ + +
+@empty + @lang('admin/contents.noPagesAvailable') +@endforelse \ No newline at end of file