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') - <div class="container small" ng-non-bindable> - @else - <div class="container" ng-non-bindable> - @endif - <h1>{{ trans('entities.books') }}</h1> - @if(count($books) > 0) - @if($booksViewType === 'list') - @foreach($books as $book) - @include('books/list-item', ['book' => $book]) - <hr> - @endforeach - {!! $books->render() !!} - @else - <div class="grid third"> - @foreach($books as $key => $book) - @include('books/grid-item', ['book' => $book]) - @endforeach - </div> - <div> - {!! $books->render() !!} - </div> - @endif - @else - <p class="text-muted">{{ trans('entities.books_empty') }}</p> - @if(userCan('books-create-all')) - <a href="{{ baseUrl("/create-book") }}" class="text-pos">@icon('edit'){{ trans('entities.create_one_now') }}</a> - @endif - @endif - </div> + @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') + <div class="container small"> +@else + <div class="container"> +@endif + <h1>{{ trans('entities.books') }}</h1> + @if(count($books) > 0) + @if($booksViewType === 'list') + @foreach($books as $book) + @include('books/list-item', ['book' => $book]) + <hr> + @endforeach + {!! $books->render() !!} + @else + <div class="grid third"> + @foreach($books as $key => $book) + @include('books/grid-item', ['book' => $book]) + @endforeach + </div> + <div> + {!! $books->render() !!} + </div> + @endif + @else + <p class="text-muted">{{ trans('entities.books_empty') }}</p> + @if(userCan('books-create-all')) + <a href="{{ baseUrl("/create-book") }}" class="text-pos">@icon('edit'){{ trans('entities.create_one_now') }}</a> + @endif + @endif +</div> \ 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') + <div class="col-sm-6 faded"> + <div class="action-buttons text-left"> + <a expand-toggle=".entity-list.compact .entity-item-snippet" class="text-primary text-button">@icon('expand-text'){{ trans('common.toggle_details') }}</a> + </div> + </div> +@stop + +@section('sidebar') + @if(count($draftPages) > 0) + <div id="recent-drafts" class="card"> + <h3>@icon('edit') {{ trans('entities.my_recent_drafts') }}</h3> + @include('partials/entity-list', ['entities' => $draftPages, 'style' => 'compact']) + </div> + @endif + + <div class="card"> + <h3>@icon($signedIn ? 'view' : 'star-circle') {{ trans('entities.' . ($signedIn ? 'my_recently_viewed' : 'books_recent')) }}</h3> + @include('partials/entity-list', [ + 'entities' => $recents, + 'style' => 'compact', + 'emptyText' => $signedIn ? trans('entities.no_pages_viewed') : trans('entities.books_empty') + ]) + </div> + + <div class="card"> + <h3>@icon('file') <a class="no-color" href="{{ baseUrl("/pages/recently-updated") }}">{{ trans('entities.recently_updated_pages') }}</a></h3> + <div id="recently-updated-pages"> + @include('partials/entity-list', [ + 'entities' => $recentlyUpdatedPages, + 'style' => 'compact', + 'emptyText' => trans('entities.no_pages_recently_updated') + ]) + </div> + </div> + + <div id="recent-activity" class="card"> + <h3>@icon('time') {{ trans('entities.recent_activity') }}</h3> + @include('partials/activity-list', ['activity' => $activity]) + </div> +@stop + +@section('body') + @include('books/list', ['books' => $books, 'bookViewType' => $booksViewType]) +@stop \ No newline at end of file