diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index bbe1a8679..da61d1c64 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -33,22 +33,41 @@ class HomeController extends Controller $recents = $this->signedIn ? Views::getUserRecentlyViewed(12*$recentFactor, 0) : $this->entityRepo->getRecentlyCreated('book', 12*$recentFactor); $recentlyUpdatedPages = $this->entityRepo->getRecentlyUpdated('page', 12); - // Custom homepage + $customHomepage = false; - $homepageSetting = setting('app-homepage'); - if ($homepageSetting) { - $id = intval(explode(':', $homepageSetting)[0]); - $customHomepage = $this->entityRepo->getById('page', $id, false, true); - $this->entityRepo->renderPage($customHomepage, true); + $books = false; + $booksViewType = false; + + // Check book homepage + $bookHomepageSetting = setting('app-book-homepage'); + if ($bookHomepageSetting) { + $books = $this->entityRepo->getAllPaginated('book', 18); + $booksViewType = setting()->getUser($this->currentUser, 'books_view_type', config('app.views.books', 'list')); + } else { + // Check custom homepage + $homepageSetting = setting('app-homepage'); + if ($homepageSetting) { + $id = intval(explode(':', $homepageSetting)[0]); + $customHomepage = $this->entityRepo->getById('page', $id, false, true); + $this->entityRepo->renderPage($customHomepage, true); + } + } + + $view = 'home'; + if ($bookHomepageSetting) { + $view = 'home-book'; + } else if ($customHomepage) { + $view = 'home-custom'; } - $view = $customHomepage ? 'home-custom' : 'home'; return view($view, [ 'activity' => $activity, 'recents' => $recents, 'recentlyUpdatedPages' => $recentlyUpdatedPages, 'draftPages' => $draftPages, - 'customHomepage' => $customHomepage + 'customHomepage' => $customHomepage, + 'books' => $books, + 'booksViewType' => $booksViewType ]); } diff --git a/resources/views/books/index.blade.php b/resources/views/books/index.blade.php index d1435ab66..f625ae6fb 100644 --- a/resources/views/books/index.blade.php +++ b/resources/views/books/index.blade.php @@ -52,34 +52,5 @@ @stop @section('body') - @if($booksViewType === 'list') -
- @else -
- @endif -

{{ trans('entities.books') }}

- @if(count($books) > 0) - @if($booksViewType === 'list') - @foreach($books as $book) - @include('books/list-item', ['book' => $book]) -
- @endforeach - {!! $books->render() !!} - @else -
- @foreach($books as $key => $book) - @include('books/grid-item', ['book' => $book]) - @endforeach -
-
- {!! $books->render() !!} -
- @endif - @else -

{{ trans('entities.books_empty') }}

- @if(userCan('books-create-all')) - @icon('edit'){{ trans('entities.create_one_now') }} - @endif - @endif -
+ @include('books/list', ['books' => $books, 'bookViewType' => $booksViewType]) @stop \ No newline at end of file diff --git a/resources/views/books/list.blade.php b/resources/views/books/list.blade.php new file mode 100644 index 000000000..1c2056a79 --- /dev/null +++ b/resources/views/books/list.blade.php @@ -0,0 +1,31 @@ + +@if($booksViewType === 'list') +
+@else +
+@endif +

{{ trans('entities.books') }}

+ @if(count($books) > 0) + @if($booksViewType === 'list') + @foreach($books as $book) + @include('books/list-item', ['book' => $book]) +
+ @endforeach + {!! $books->render() !!} + @else +
+ @foreach($books as $key => $book) + @include('books/grid-item', ['book' => $book]) + @endforeach +
+
+ {!! $books->render() !!} +
+ @endif + @else +

{{ trans('entities.books_empty') }}

+ @if(userCan('books-create-all')) + @icon('edit'){{ trans('entities.create_one_now') }} + @endif + @endif +
\ No newline at end of file diff --git a/resources/views/home-book.blade.php b/resources/views/home-book.blade.php new file mode 100644 index 000000000..ef94a78a1 --- /dev/null +++ b/resources/views/home-book.blade.php @@ -0,0 +1,47 @@ +@extends('sidebar-layout') + +@section('toolbar') + +@stop + +@section('sidebar') + @if(count($draftPages) > 0) +
+

@icon('edit') {{ trans('entities.my_recent_drafts') }}

+ @include('partials/entity-list', ['entities' => $draftPages, 'style' => 'compact']) +
+ @endif + +
+

@icon($signedIn ? 'view' : 'star-circle') {{ trans('entities.' . ($signedIn ? 'my_recently_viewed' : 'books_recent')) }}

+ @include('partials/entity-list', [ + 'entities' => $recents, + 'style' => 'compact', + 'emptyText' => $signedIn ? trans('entities.no_pages_viewed') : trans('entities.books_empty') + ]) +
+ +
+

@icon('file') {{ trans('entities.recently_updated_pages') }}

+
+ @include('partials/entity-list', [ + 'entities' => $recentlyUpdatedPages, + 'style' => 'compact', + 'emptyText' => trans('entities.no_pages_recently_updated') + ]) +
+
+ +
+

@icon('time') {{ trans('entities.recent_activity') }}

+ @include('partials/activity-list', ['activity' => $activity]) +
+@stop + +@section('body') + @include('books/list', ['books' => $books, 'bookViewType' => $booksViewType]) +@stop \ No newline at end of file