X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/e4e3b25c22e1be9f33d96b6d77d86b46b0c467d2..refs/pull/524/head:/app/Http/Controllers/PageController.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 276665e52..fd36b3158 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -156,19 +156,19 @@ class PageController extends Controller return redirect($page->getUrl()); } - $this->checkOwnablePermission('page-view', $page); - $pageContent = $this->entityRepo->renderPage($page); + $page->html = $this->entityRepo->renderPage($page); $sidebarTree = $this->entityRepo->getBookChildren($page->book); - $pageNav = $this->entityRepo->getPageNav($page); - + $pageNav = $this->entityRepo->getPageNav($page->html); + $page->load(['comments.createdBy']); + Views::add($page); $this->setPageTitle($page->getShortName()); return view('pages/show', [ 'page' => $page,'book' => $page->book, 'current' => $page, 'sidebarTree' => $sidebarTree, - 'pageNav' => $pageNav, 'pageContent' => $pageContent]); + 'pageNav' => $pageNav]); } /** @@ -370,14 +370,18 @@ class PageController extends Controller public function showRevision($bookSlug, $pageSlug, $revisionId) { $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); - $revision = $this->entityRepo->getById('page_revision', $revisionId, false); + $revision = $page->revisions()->where('id', '=', $revisionId)->first(); + if ($revision === null) { + abort(404); + } $page->fill($revision->toArray()); - $this->setPageTitle(trans('entities.pages_revision_named', ['pageName'=>$page->getShortName()])); - + $this->setPageTitle(trans('entities.pages_revision_named', ['pageName' => $page->getShortName()])); + return view('pages/revision', [ 'page' => $page, 'book' => $page->book, + 'revision' => $revision ]); } @@ -391,7 +395,10 @@ class PageController extends Controller public function showRevisionChanges($bookSlug, $pageSlug, $revisionId) { $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); - $revision = $this->entityRepo->getById('page_revision', $revisionId); + $revision = $page->revisions()->where('id', '=', $revisionId)->first(); + if ($revision === null) { + abort(404); + } $prev = $revision->getPrevious(); $prevContent = ($prev === null) ? '' : $prev->html; @@ -404,6 +411,7 @@ class PageController extends Controller 'page' => $page, 'book' => $page->book, 'diff' => $diff, + 'revision' => $revision ]); } @@ -424,7 +432,7 @@ class PageController extends Controller } /** - * Exports a page to pdf format using barryvdh/laravel-dompdf wrapper. + * Exports a page to a PDF. * https://github.com/barryvdh/laravel-dompdf * @param string $bookSlug * @param string $pageSlug @@ -433,6 +441,7 @@ class PageController extends Controller public function exportPdf($bookSlug, $pageSlug) { $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page->html = $this->entityRepo->renderPage($page); $pdfContent = $this->exportService->pageToPdf($page); return response()->make($pdfContent, 200, [ 'Content-Type' => 'application/octet-stream', @@ -449,6 +458,7 @@ class PageController extends Controller public function exportHtml($bookSlug, $pageSlug) { $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page->html = $this->entityRepo->renderPage($page); $containedHtml = $this->exportService->pageToContainedHtml($page); return response()->make($containedHtml, 200, [ 'Content-Type' => 'application/octet-stream',