- session()->flash('success', trans('entities.pages_delete_draft_success'));
- $this->entityRepo->destroyPage($page);
- return redirect($book->getUrl());
- }
-
- /**
- * Shows the last revisions for this page.
- * @param string $bookSlug
- * @param string $pageSlug
- * @return \Illuminate\View\View
- */
- public function showRevisions($bookSlug, $pageSlug)
- {
- $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
- $this->setPageTitle(trans('entities.pages_revisions_named', ['pageName'=>$page->getShortName()]));
- return view('pages/revisions', ['page' => $page, 'book' => $page->book, 'current' => $page]);
- }
-
- /**
- * Shows a preview of a single revision
- * @param string $bookSlug
- * @param string $pageSlug
- * @param int $revisionId
- * @return \Illuminate\View\View
- */
- public function showRevision($bookSlug, $pageSlug, $revisionId)
- {
- $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
- $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()]));
-
- return view('pages/revision', [
- 'page' => $page,
- 'book' => $page->book,
- 'revision' => $revision
- ]);
- }
-
- /**
- * Shows the changes of a single revision
- * @param string $bookSlug
- * @param string $pageSlug
- * @param int $revisionId
- * @return \Illuminate\View\View
- */
- public function showRevisionChanges($bookSlug, $pageSlug, $revisionId)
- {
- $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
- $revision = $page->revisions()->where('id', '=', $revisionId)->first();
- if ($revision === null) {
- abort(404);
- }
-
- $prev = $revision->getPrevious();
- $prevContent = ($prev === null) ? '' : $prev->html;
- $diff = (new Htmldiff)->diff($prevContent, $revision->html);
-
- $page->fill($revision->toArray());
- $this->setPageTitle(trans('entities.pages_revision_named', ['pageName'=>$page->getShortName()]));
-
- return view('pages/revision', [
- 'page' => $page,
- 'book' => $page->book,
- 'diff' => $diff,
- 'revision' => $revision
- ]);
- }
-
- /**
- * Restores a page using the content of the specified revision.
- * @param string $bookSlug
- * @param string $pageSlug
- * @param int $revisionId
- * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
- */
- public function restoreRevision($bookSlug, $pageSlug, $revisionId)
- {
- $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
- $this->checkOwnablePermission('page-update', $page);
- $page = $this->entityRepo->restorePageRevision($page, $page->book, $revisionId);
- Activity::add($page, 'page_restore', $page->book->id);
- return redirect($page->getUrl());
- }
-
-
- /**
- * Deletes a revision using the id of the specified revision.
- * @param string $bookSlug
- * @param string $pageSlug
- * @param int $revId
- * @throws NotFoundException
- * @throws BadRequestException
- * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
- */
- public function destroyRevision($bookSlug, $pageSlug, $revId)
- {
- $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
- $this->checkOwnablePermission('page-delete', $page);