diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index 32e0a743c..02b4789c2 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 = $customHomepage ? 'home-custom' : 'home'; - return view($view, [ + $view = 'home'; + if ($bookHomepageSetting) { + $view = 'home-book'; + } else if ($customHomepage) { + $view = 'home-custom'; + } + + return view('common/' . $view, [ 'activity' => $activity, 'recents' => $recents, 'recentlyUpdatedPages' => $recentlyUpdatedPages, 'draftPages' => $draftPages, - 'customHomepage' => $customHomepage + 'customHomepage' => $customHomepage, + 'books' => $books, + 'booksViewType' => $booksViewType ]); } @@ -131,7 +150,7 @@ class HomeController extends Controller $allowRobots = $sitePublic; } return response() - ->view('robots', ['allowRobots' => $allowRobots]) + ->view('common/robots', ['allowRobots' => $allowRobots]) ->header('Content-Type', 'text/plain'); } diff --git a/resources/assets/sass/_forms.scss b/resources/assets/sass/_forms.scss index 3ab2de522..6b3ed3815 100644 --- a/resources/assets/sass/_forms.scss +++ b/resources/assets/sass/_forms.scss @@ -9,6 +9,7 @@ color: #666; width: 250px; max-width: 100%; + &.neg, &.invalid { border: 1px solid $negative; } diff --git a/resources/lang/en/settings.php b/resources/lang/en/settings.php index de4894280..b699b5c4b 100755 --- a/resources/lang/en/settings.php +++ b/resources/lang/en/settings.php @@ -34,6 +34,7 @@ return [ 'app_homepage' => 'Application Homepage', 'app_homepage_desc' => 'Select a page to show on the homepage instead of the default view. Page permissions are ignored for selected pages.', 'app_homepage_default' => 'Default homepage view chosen', + 'app_homepage_books' => 'Or select the books page as your homepage. This will override any page selected as your homepage.', 'app_disable_comments' => 'Disable comments', 'app_disable_comments_desc' => 'Disable comments across all pages in the application. Existing comments are not shown.', diff --git a/resources/views/books/index.blade.php b/resources/views/books/index.blade.php index d1435ab66..84150203f 100644 --- a/resources/views/books/index.blade.php +++ b/resources/views/books/index.blade.php @@ -3,16 +3,7 @@ @section('toolbar')
{{ trans('entities.books_empty') }}
- @if(userCan('books-create-all')) - @icon('edit'){{ trans('entities.create_one_now') }} - @endif - @endif -{{ trans('entities.books_empty') }}
+ @if(userCan('books-create-all')) + @icon('edit'){{ trans('entities.create_one_now') }} + @endif + @endif +{{ trans('settings.app_homepage_desc') }}
@include('components.page-picker', ['name' => 'setting-app-homepage', 'placeholder' => trans('settings.app_homepage_default'), 'value' => setting('app-homepage')]) +{{ trans('settings.app_homepage_books') }}
+ @include('components.toggle-switch', ['name' => 'setting-app-book-homepage', 'value' => setting('app-book-homepage')])