X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/be4f3d62cd37c7b83eb86bbf5fffa00d20acf2ec..refs/pull/1088/head:/app/Http/Controllers/PageController.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 80bbe56c1..74595443b 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -1,31 +1,32 @@ entityRepo = $entityRepo; + $this->pageRepo = $pageRepo; $this->exportService = $exportService; $this->userRepo = $userRepo; parent::__construct(); @@ -42,11 +43,11 @@ class PageController extends Controller public function create($bookSlug, $chapterSlug = null) { if ($chapterSlug !== null) { - $chapter = $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug); + $chapter = $this->pageRepo->getBySlug('chapter', $chapterSlug, $bookSlug); $book = $chapter->book; } else { $chapter = null; - $book = $this->entityRepo->getBySlug('book', $bookSlug); + $book = $this->pageRepo->getBySlug('book', $bookSlug); } $parent = $chapter ? $chapter : $book; @@ -54,7 +55,7 @@ class PageController extends Controller // Redirect to draft edit screen if signed in if ($this->signedIn) { - $draft = $this->entityRepo->getDraftPage($book, $chapter); + $draft = $this->pageRepo->getDraftPage($book, $chapter); return redirect($draft->getUrl()); } @@ -78,18 +79,18 @@ class PageController extends Controller ]); if ($chapterSlug !== null) { - $chapter = $this->entityRepo->getBySlug('chapter', $chapterSlug, $bookSlug); + $chapter = $this->pageRepo->getBySlug('chapter', $chapterSlug, $bookSlug); $book = $chapter->book; } else { $chapter = null; - $book = $this->entityRepo->getBySlug('book', $bookSlug); + $book = $this->pageRepo->getBySlug('book', $bookSlug); } $parent = $chapter ? $chapter : $book; $this->checkOwnablePermission('page-create', $parent); - $page = $this->entityRepo->getDraftPage($book, $chapter); - $this->entityRepo->publishPageDraft($page, [ + $page = $this->pageRepo->getDraftPage($book, $chapter); + $this->pageRepo->publishPageDraft($page, [ 'name' => $request->get('name'), 'html' => '' ]); @@ -104,7 +105,7 @@ class PageController extends Controller */ public function editDraft($bookSlug, $pageId) { - $draft = $this->entityRepo->getById('page', $pageId, true); + $draft = $this->pageRepo->getById('page', $pageId, true); $this->checkOwnablePermission('page-create', $draft->parent); $this->setPageTitle(trans('entities.pages_edit_draft')); @@ -131,19 +132,19 @@ class PageController extends Controller ]); $input = $request->all(); - $draftPage = $this->entityRepo->getById('page', $pageId, true); + $draftPage = $this->pageRepo->getById('page', $pageId, true); $book = $draftPage->book; $parent = $draftPage->parent; $this->checkOwnablePermission('page-create', $parent); if ($parent->isA('chapter')) { - $input['priority'] = $this->entityRepo->getNewChapterPriority($parent); + $input['priority'] = $this->pageRepo->getNewChapterPriority($parent); } else { - $input['priority'] = $this->entityRepo->getNewBookPriority($parent); + $input['priority'] = $this->pageRepo->getNewBookPriority($parent); } - $page = $this->entityRepo->publishPageDraft($draftPage, $input); + $page = $this->pageRepo->publishPageDraft($draftPage, $input); Activity::add($page, 'page_create', $book->id); return redirect($page->getUrl()); @@ -160,9 +161,9 @@ class PageController extends Controller public function show($bookSlug, $pageSlug) { try { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); } catch (NotFoundException $e) { - $page = $this->entityRepo->getPageByOldSlug($pageSlug, $bookSlug); + $page = $this->pageRepo->getPageByOldSlug($pageSlug, $bookSlug); if ($page === null) { throw $e; } @@ -171,9 +172,9 @@ class PageController extends Controller $this->checkOwnablePermission('page-view', $page); - $page->html = $this->entityRepo->renderPage($page); - $sidebarTree = $this->entityRepo->getBookChildren($page->book); - $pageNav = $this->entityRepo->getPageNav($page->html); + $page->html = $this->pageRepo->renderPage($page); + $sidebarTree = $this->pageRepo->getBookChildren($page->book); + $pageNav = $this->pageRepo->getPageNav($page->html); // check if the comment's are enabled $commentsEnabled = !setting('app-disable-comments'); @@ -199,7 +200,7 @@ class PageController extends Controller */ public function getPageAjax($pageId) { - $page = $this->entityRepo->getById('page', $pageId); + $page = $this->pageRepo->getById('page', $pageId); return response()->json($page); } @@ -208,28 +209,29 @@ class PageController extends Controller * @param string $bookSlug * @param string $pageSlug * @return Response + * @throws NotFoundException */ public function edit($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); $this->setPageTitle(trans('entities.pages_editing_named', ['pageName'=>$page->getShortName()])); $page->isDraft = false; // Check for active editing $warnings = []; - if ($this->entityRepo->isPageEditingActive($page, 60)) { - $warnings[] = $this->entityRepo->getPageEditingActiveMessage($page, 60); + if ($this->pageRepo->isPageEditingActive($page, 60)) { + $warnings[] = $this->pageRepo->getPageEditingActiveMessage($page, 60); } // Check for a current draft version for this user - if ($this->entityRepo->hasUserGotPageDraft($page, $this->currentUser->id)) { - $draft = $this->entityRepo->getUserPageDraft($page, $this->currentUser->id); - $page->name = $draft->name; - $page->html = $draft->html; - $page->markdown = $draft->markdown; + $userPageDraft = $this->pageRepo->getUserPageDraft($page, $this->currentUser->id); + if ($userPageDraft !== null) { + $page->name = $userPageDraft->name; + $page->html = $userPageDraft->html; + $page->markdown = $userPageDraft->markdown; $page->isDraft = true; - $warnings [] = $this->entityRepo->getUserPageDraftMessage($draft); + $warnings [] = $this->pageRepo->getUserPageDraftMessage($userPageDraft); } if (count($warnings) > 0) { @@ -257,9 +259,9 @@ class PageController extends Controller $this->validate($request, [ 'name' => 'required|string|max:255' ]); - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); - $this->entityRepo->updatePage($page, $page->book->id, $request->all()); + $this->pageRepo->updatePage($page, $page->book->id, $request->all()); Activity::add($page, 'page_update', $page->book->id); return redirect($page->getUrl()); } @@ -272,7 +274,7 @@ class PageController extends Controller */ public function saveDraft(Request $request, $pageId) { - $page = $this->entityRepo->getById('page', $pageId, true); + $page = $this->pageRepo->getById('page', $pageId, true); $this->checkOwnablePermission('page-update', $page); if (!$this->signedIn) { @@ -282,7 +284,7 @@ class PageController extends Controller ], 500); } - $draft = $this->entityRepo->updatePageDraft($page, $request->only(['name', 'html', 'markdown'])); + $draft = $this->pageRepo->updatePageDraft($page, $request->only(['name', 'html', 'markdown'])); $updateTime = $draft->updated_at->timestamp; return response()->json([ @@ -300,7 +302,7 @@ class PageController extends Controller */ public function redirectFromLink($pageId) { - $page = $this->entityRepo->getById('page', $pageId); + $page = $this->pageRepo->getById('page', $pageId); return redirect($page->getUrl()); } @@ -312,7 +314,7 @@ class PageController extends Controller */ public function showDelete($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-delete', $page); $this->setPageTitle(trans('entities.pages_delete_named', ['pageName'=>$page->getShortName()])); return view('pages/delete', ['book' => $page->book, 'page' => $page, 'current' => $page]); @@ -328,7 +330,7 @@ class PageController extends Controller */ public function showDeleteDraft($bookSlug, $pageId) { - $page = $this->entityRepo->getById('page', $pageId, true); + $page = $this->pageRepo->getById('page', $pageId, true); $this->checkOwnablePermission('page-update', $page); $this->setPageTitle(trans('entities.pages_delete_draft_named', ['pageName'=>$page->getShortName()])); return view('pages/delete', ['book' => $page->book, 'page' => $page, 'current' => $page]); @@ -343,10 +345,10 @@ class PageController extends Controller */ public function destroy($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $book = $page->book; $this->checkOwnablePermission('page-delete', $page); - $this->entityRepo->destroyPage($page); + $this->pageRepo->destroyPage($page); Activity::addMessage('page_delete', $book->id, $page->name); session()->flash('success', trans('entities.pages_delete_success')); @@ -362,11 +364,11 @@ class PageController extends Controller */ public function destroyDraft($bookSlug, $pageId) { - $page = $this->entityRepo->getById('page', $pageId, true); + $page = $this->pageRepo->getById('page', $pageId, true); $book = $page->book; $this->checkOwnablePermission('page-update', $page); session()->flash('success', trans('entities.pages_delete_draft_success')); - $this->entityRepo->destroyPage($page); + $this->pageRepo->destroyPage($page); return redirect($book->getUrl()); } @@ -378,7 +380,7 @@ class PageController extends Controller */ public function showRevisions($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->setPageTitle(trans('entities.pages_revisions_named', ['pageName'=>$page->getShortName()])); return view('pages/revisions', ['page' => $page, 'book' => $page->book, 'current' => $page]); } @@ -392,7 +394,7 @@ class PageController extends Controller */ public function showRevision($bookSlug, $pageSlug, $revisionId) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $revision = $page->revisions()->where('id', '=', $revisionId)->first(); if ($revision === null) { abort(404); @@ -417,7 +419,7 @@ class PageController extends Controller */ public function showRevisionChanges($bookSlug, $pageSlug, $revisionId) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $revision = $page->revisions()->where('id', '=', $revisionId)->first(); if ($revision === null) { abort(404); @@ -447,9 +449,9 @@ class PageController extends Controller */ public function restoreRevision($bookSlug, $pageSlug, $revisionId) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); - $page = $this->entityRepo->restorePageRevision($page, $page->book, $revisionId); + $page = $this->pageRepo->restorePageRevision($page, $page->book, $revisionId); Activity::add($page, 'page_restore', $page->book->id); return redirect($page->getUrl()); } @@ -466,7 +468,7 @@ class PageController extends Controller */ public function destroyRevision($bookSlug, $pageSlug, $revId) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-delete', $page); $revision = $page->revisions()->where('id', '=', $revId)->first(); @@ -497,8 +499,8 @@ class PageController extends Controller */ public function exportPdf($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); - $page->html = $this->entityRepo->renderPage($page); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); + $page->html = $this->pageRepo->renderPage($page); $pdfContent = $this->exportService->pageToPdf($page); return $this->downloadResponse($pdfContent, $pageSlug . '.pdf'); } @@ -511,8 +513,8 @@ class PageController extends Controller */ public function exportHtml($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); - $page->html = $this->entityRepo->renderPage($page); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); + $page->html = $this->pageRepo->renderPage($page); $containedHtml = $this->exportService->pageToContainedHtml($page); return $this->downloadResponse($containedHtml, $pageSlug . '.html'); } @@ -525,7 +527,7 @@ class PageController extends Controller */ public function exportPlainText($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $pageText = $this->exportService->pageToPlainText($page); return $this->downloadResponse($pageText, $pageSlug . '.txt'); } @@ -536,7 +538,7 @@ class PageController extends Controller */ public function showRecentlyCreated() { - $pages = $this->entityRepo->getRecentlyCreatedPaginated('page', 20)->setPath(baseUrl('/pages/recently-created')); + $pages = $this->pageRepo->getRecentlyCreatedPaginated('page', 20)->setPath(baseUrl('/pages/recently-created')); return view('pages/detailed-listing', [ 'title' => trans('entities.recently_created_pages'), 'pages' => $pages @@ -549,7 +551,7 @@ class PageController extends Controller */ public function showRecentlyUpdated() { - $pages = $this->entityRepo->getRecentlyUpdatedPaginated('page', 20)->setPath(baseUrl('/pages/recently-updated')); + $pages = $this->pageRepo->getRecentlyUpdatedPaginated('page', 20)->setPath(baseUrl('/pages/recently-updated')); return view('pages/detailed-listing', [ 'title' => trans('entities.recently_updated_pages'), 'pages' => $pages @@ -564,7 +566,7 @@ class PageController extends Controller */ public function showRestrict($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('restrictions-manage', $page); $roles = $this->userRepo->getRestrictableRoles(); return view('pages/restrictions', [ @@ -582,7 +584,7 @@ class PageController extends Controller */ public function showMove($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); return view('pages/move', [ 'book' => $page->book, @@ -600,7 +602,7 @@ class PageController extends Controller */ public function move($bookSlug, $pageSlug, Request $request) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); $entitySelection = $request->get('entity_selection', null); @@ -614,7 +616,7 @@ class PageController extends Controller try { - $parent = $this->entityRepo->getById($entityType, $entityId); + $parent = $this->pageRepo->getById($entityType, $entityId); } catch (\Exception $e) { session()->flash(trans('entities.selected_book_chapter_not_found')); return redirect()->back(); @@ -622,7 +624,7 @@ class PageController extends Controller $this->checkOwnablePermission('page-create', $parent); - $this->entityRepo->changePageParent($page, $parent); + $this->pageRepo->changePageParent($page, $parent); Activity::add($page, 'page_move', $page->book->id); session()->flash('success', trans('entities.pages_move_success', ['parentName' => $parent->name])); @@ -638,7 +640,7 @@ class PageController extends Controller */ public function showCopy($bookSlug, $pageSlug) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); session()->flashInput(['name' => $page->name]); return view('pages/copy', [ @@ -657,7 +659,7 @@ class PageController extends Controller */ public function copy($bookSlug, $pageSlug, Request $request) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('page-update', $page); $entitySelection = $request->get('entity_selection', null); @@ -669,7 +671,7 @@ class PageController extends Controller $entityId = intval($stringExploded[1]); try { - $parent = $this->entityRepo->getById($entityType, $entityId); + $parent = $this->pageRepo->getById($entityType, $entityId); } catch (\Exception $e) { session()->flash(trans('entities.selected_book_chapter_not_found')); return redirect()->back(); @@ -678,7 +680,7 @@ class PageController extends Controller $this->checkOwnablePermission('page-create', $parent); - $pageCopy = $this->entityRepo->copyPage($page, $parent, $request->get('name', '')); + $pageCopy = $this->pageRepo->copyPage($page, $parent, $request->get('name', '')); Activity::add($pageCopy, 'page_create', $pageCopy->book->id); session()->flash('success', trans('entities.pages_copy_success')); @@ -696,9 +698,9 @@ class PageController extends Controller */ public function restrict($bookSlug, $pageSlug, Request $request) { - $page = $this->entityRepo->getBySlug('page', $pageSlug, $bookSlug); + $page = $this->pageRepo->getPageBySlug($pageSlug, $bookSlug); $this->checkOwnablePermission('restrictions-manage', $page); - $this->entityRepo->updateEntityPermissionsFromRequest($request, $page); + $this->pageRepo->updateEntityPermissionsFromRequest($request, $page); session()->flash('success', trans('entities.pages_permissions_success')); return redirect($page->getUrl()); }