X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ef1b98019a0c3f123b0add8428292807eac3fe05..265f5db03f3f08665bb113191f83c49e5dae53a7:/app/Http/Controllers/SearchController.php diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 8b9fac468..859857500 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -1,26 +1,21 @@ viewService = $viewService; $this->searchRunner = $searchRunner; $this->entityContextManager = $entityContextManager; } @@ -84,7 +79,7 @@ class SearchController extends Controller $searchTerm .= ' {type:'. implode('|', $entityTypes) .'}'; $entities = $this->searchRunner->searchEntities(SearchOptions::fromString($searchTerm), 'all', 1, 20, $permission)['results']; } else { - $entities = $this->viewService->getPopular(20, 0, $entityTypes, $permission); + $entities = (new Popular)->run(20, 0, $entityTypes, $permission); } return view('search.entity-ajax-list', ['entities' => $entities]); @@ -98,39 +93,7 @@ class SearchController extends Controller $type = $request->get('entity_type', null); $id = $request->get('entity_id', null); - $entity = Entity::getEntityInstance($type)->newQuery()->visible()->find($id); - if (!$entity) { - return $this->jsonError(trans('errors.entity_not_found'), 404); - } - - $entities = []; - - // Page in chapter - if ($entity->isA('page') && $entity->chapter) { - $entities = $entity->chapter->getVisiblePages(); - } - - // Page in book or chapter - if (($entity->isA('page') && !$entity->chapter) || $entity->isA('chapter')) { - $entities = $entity->book->getDirectChildren(); - } - - // Book - // Gets just the books in a shelf if shelf is in context - if ($entity->isA('book')) { - $contextShelf = $this->entityContextManager->getContextualShelfForBook($entity); - if ($contextShelf) { - $entities = $contextShelf->visibleBooks()->get(); - } else { - $entities = Book::visible()->get(); - } - } - - // Shelve - if ($entity->isA('bookshelf')) { - $entities = Bookshelf::visible()->get(); - } - + $entities = (new SiblingFetcher)->fetch($type, $id); return view('partials.entity-list-basic', ['entities' => $entities, 'style' => 'compact']); } }