* @param string $bookSlug
* @param string $pageSlug
* @return Response
+ * @throws NotFoundException
*/
public function show($bookSlug, $pageSlug)
{
$page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
} catch (NotFoundException $e) {
$page = $this->entityRepo->getPageByOldSlug($pageSlug, $bookSlug);
- if ($page === null) abort(404);
+ if ($page === null) {
+ throw $e;
+ }
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($pageContent);
-
+ $pageNav = $this->entityRepo->getPageNav($page->html);
+
+ // check if the comment's are enabled
+ $commentsEnabled = !setting('app-disable-comments');
+ if ($commentsEnabled) {
+ $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]);
+ 'current' => $page,
+ 'sidebarTree' => $sidebarTree,
+ 'commentsEnabled' => $commentsEnabled,
+ 'pageNav' => $pageNav
+ ]);
}
/**
$warnings [] = $this->entityRepo->getUserPageDraftMessage($draft);
}
- if (count($warnings) > 0) session()->flash('warning', implode("\n", $warnings));
+ if (count($warnings) > 0) {
+ session()->flash('warning', implode("\n", $warnings));
+ }
$draftsEnabled = $this->signedIn;
return view('pages/edit', [
$draft = $this->entityRepo->updatePageDraft($page, $request->only(['name', 'html', 'markdown']));
$updateTime = $draft->updated_at->timestamp;
- $utcUpdateTimestamp = $updateTime + Carbon::createFromTimestamp(0)->offset;
return response()->json([
'status' => 'success',
'message' => trans('entities.pages_edit_draft_save_at'),
- 'timestamp' => $utcUpdateTimestamp
+ 'timestamp' => $updateTime
]);
}
$page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug);
$book = $page->book;
$this->checkOwnablePermission('page-delete', $page);
+ $this->entityRepo->destroyPage($page);
+
Activity::addMessage('page_delete', $book->id, $page->name);
session()->flash('success', trans('entities.pages_delete_success'));
- $this->entityRepo->destroyPage($page);
return redirect($book->getUrl());
}
$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
]);
}
'page' => $page,
'book' => $page->book,
'diff' => $diff,
+ 'revision' => $revision
]);
}
}
/**
- * 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
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',
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',
session()->flash('success', trans('entities.pages_permissions_success'));
return redirect($page->getUrl());
}
-
}