X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/3286f29a61833327b5701b28db626d0a480b07f9..refs/pull/1392/head:/app/Http/Controllers/BookshelfController.php diff --git a/app/Http/Controllers/BookshelfController.php b/app/Http/Controllers/BookshelfController.php index dd305be97..b86bc2e38 100644 --- a/app/Http/Controllers/BookshelfController.php +++ b/app/Http/Controllers/BookshelfController.php @@ -3,8 +3,8 @@ use Activity; use BookStack\Auth\UserRepo; use BookStack\Entities\Bookshelf; +use BookStack\Entities\EntityContextManager; use BookStack\Entities\Repos\EntityRepo; -use BookStack\Entities\ExportService; use Illuminate\Http\Request; use Illuminate\Http\Response; use Views; @@ -14,19 +14,19 @@ class BookshelfController extends Controller protected $entityRepo; protected $userRepo; - protected $exportService; + protected $entityContextManager; /** * BookController constructor. - * @param \BookStack\Entities\Repos\EntityRepo $entityRepo + * @param EntityRepo $entityRepo * @param UserRepo $userRepo - * @param \BookStack\Entities\ExportService $exportService + * @param EntityContextManager $entityContextManager */ - public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, ExportService $exportService) + public function __construct(EntityRepo $entityRepo, UserRepo $userRepo, EntityContextManager $entityContextManager) { $this->entityRepo = $entityRepo; $this->userRepo = $userRepo; - $this->exportService = $exportService; + $this->entityContextManager = $entityContextManager; parent::__construct(); } @@ -36,9 +36,7 @@ class BookshelfController extends Controller */ public function index() { - $view = setting()->getUser($this->currentUser, 'bookshelves_view_type', config('app.views.bookshelves', 'grid')); - $sort = setting()->getUser($this->currentUser, 'bookshelves_sort', 'name'); $order = setting()->getUser($this->currentUser, 'bookshelves_sort_order', 'asc'); $sortOptions = [ @@ -48,11 +46,15 @@ class BookshelfController extends Controller ]; $shelves = $this->entityRepo->getAllPaginated('bookshelf', 18, $sort, $order); + foreach ($shelves as $shelf) { + $shelf->books = $this->entityRepo->getBookshelfChildren($shelf); + } + $recents = $this->signedIn ? $this->entityRepo->getRecentlyViewed('bookshelf', 4, 0) : false; $popular = $this->entityRepo->getPopular('bookshelf', 4, 0); $new = $this->entityRepo->getRecentlyCreated('bookshelf', 4, 0); - + $this->entityContextManager->clearShelfContext(); $this->setPageTitle(trans('entities.shelves')); return view('shelves.index', [ 'shelves' => $shelves, @@ -107,11 +109,13 @@ class BookshelfController extends Controller */ public function show(string $slug) { - $bookshelf = $this->entityRepo->getBySlug('bookshelf', $slug); /** @var $bookshelf Bookshelf */ + /** @var Bookshelf $bookshelf */ + $bookshelf = $this->entityRepo->getBySlug('bookshelf', $slug); $this->checkOwnablePermission('book-view', $bookshelf); $books = $this->entityRepo->getBookshelfChildren($bookshelf); Views::add($bookshelf); + $this->entityContextManager->setShelfContext($bookshelf->id); $this->setPageTitle($bookshelf->getShortName()); return view('shelves.show', [