X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/9eecaea31a0f9a5f79bdf7792838e956174a3e71..refs/pull/358/head:/app/Repos/EntityRepo.php diff --git a/app/Repos/EntityRepo.php b/app/Repos/EntityRepo.php index 8a8740d76..8f4b533ff 100644 --- a/app/Repos/EntityRepo.php +++ b/app/Repos/EntityRepo.php @@ -86,8 +86,7 @@ class EntityRepo $this->entities = [ 'page' => $this->page, 'chapter' => $this->chapter, - 'book' => $this->book, - 'page_revision' => $this->pageRevision + 'book' => $this->book ]; $this->viewService = $viewService; $this->permissionService = $permissionService; @@ -314,11 +313,12 @@ class EntityRepo * Loads the book slug onto child elements to prevent access database access for getting the slug. * @param Book $book * @param bool $filterDrafts + * @param bool $renderPages * @return mixed */ - public function getBookChildren(Book $book, $filterDrafts = false) + public function getBookChildren(Book $book, $filterDrafts = false, $renderPages = false) { - $q = $this->permissionService->bookChildrenQuery($book->id, $filterDrafts)->get(); + $q = $this->permissionService->bookChildrenQuery($book->id, $filterDrafts, $renderPages)->get(); $entities = []; $parents = []; $tree = []; @@ -326,6 +326,10 @@ class EntityRepo foreach ($q as $index => $rawEntity) { if ($rawEntity->entity_type === 'BookStack\\Page') { $entities[$index] = $this->page->newFromBuilder($rawEntity); + if ($renderPages) { + $entities[$index]->html = $rawEntity->description; + $entities[$index]->html = $this->renderPage($entities[$index]); + }; } else if ($rawEntity->entity_type === 'BookStack\\Chapter') { $entities[$index] = $this->chapter->newFromBuilder($rawEntity); $key = $entities[$index]->entity_type . ':' . $entities[$index]->id; @@ -1054,7 +1058,7 @@ class EntityRepo public function restorePageRevision(Page $page, Book $book, $revisionId) { $this->savePageRevision($page); - $revision = $this->getById('page_revision', $revisionId); + $revision = $page->revisions()->where('id', '=', $revisionId)->first(); $page->fill($revision->toArray()); $page->slug = $this->findSuitableSlug('page', $page->name, $page->id, $book->id); $page->text = strip_tags($page->html);