X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a6633642232efd164d4708967ab59e498fbff896..refs/pull/3416/head:/app/Http/Controllers/PageRevisionController.php diff --git a/app/Http/Controllers/PageRevisionController.php b/app/Http/Controllers/PageRevisionController.php index 4c4333016..c6a4926d2 100644 --- a/app/Http/Controllers/PageRevisionController.php +++ b/app/Http/Controllers/PageRevisionController.php @@ -1,13 +1,14 @@ -pageRepo->getBySlug($bookSlug, $pageSlug); $this->setPageTitle(trans('entities.pages_revisions_named', ['pageName'=>$page->getShortName()])); + return view('pages.revisions', [ - 'page' => $page, - 'current' => $page + 'page' => $page, + 'current' => $page, ]); } /** * Shows a preview of a single revision. + * * @throws NotFoundException */ public function show(string $bookSlug, string $pageSlug, int $revisionId) @@ -50,16 +54,18 @@ class PageRevisionController extends Controller $page->html = (new PageContent($page))->render(); $this->setPageTitle(trans('entities.pages_revision_named', ['pageName' => $page->getShortName()])); + return view('pages.revision', [ - 'page' => $page, - 'book' => $page->book, - 'diff' => null, - 'revision' => $revision + 'page' => $page, + 'book' => $page->book, + 'diff' => null, + 'revision' => $revision, ]); } /** * Shows the changes of a single revision. + * * @throws NotFoundException */ public function changes(string $bookSlug, string $pageSlug, int $revisionId) @@ -81,15 +87,16 @@ class PageRevisionController extends Controller $this->setPageTitle(trans('entities.pages_revision_named', ['pageName'=>$page->getShortName()])); return view('pages.revision', [ - 'page' => $page, - 'book' => $page->book, - 'diff' => $diff, - 'revision' => $revision + 'page' => $page, + 'book' => $page->book, + 'diff' => $diff, + 'revision' => $revision, ]); } /** * Restores a page using the content of the specified revision. + * * @throws NotFoundException */ public function restore(string $bookSlug, string $pageSlug, int $revisionId) @@ -104,6 +111,7 @@ class PageRevisionController extends Controller /** * Deletes a revision using the id of the specified revision. + * * @throws NotFoundException */ public function destroy(string $bookSlug, string $pageSlug, int $revId) @@ -116,17 +124,16 @@ class PageRevisionController extends Controller throw new NotFoundException("Revision #{$revId} not found"); } - // Get the current revision for the page - $currentRevision = $page->getCurrentRevision(); - - // Check if its the latest revision, cannot delete latest revision. - if (intval($currentRevision->id) === intval($revId)) { + // Check if it's the latest revision, cannot delete the latest revision. + if (intval($page->currentRevision->id ?? null) === intval($revId)) { $this->showErrorNotification(trans('entities.revision_cannot_delete_latest')); + return redirect($page->getUrl('/revisions')); } $revision->delete(); $this->showSuccessNotification(trans('entities.revision_delete_success')); + return redirect($page->getUrl('/revisions')); } }