X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/7ca66c5d5e7f691e27ac35b392770bb4d3a3b2fb..265f5db03f3f08665bb113191f83c49e5dae53a7:/app/Http/Controllers/PageController.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 616970a5d..31ee4e970 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -2,6 +2,7 @@ use BookStack\Actions\View; use BookStack\Entities\Tools\BookContents; +use BookStack\Entities\Tools\NextPreviousContentLocator; use BookStack\Entities\Tools\PageContent; use BookStack\Entities\Tools\PageEditActivity; use BookStack\Entities\Models\Page; @@ -13,7 +14,6 @@ use Exception; use Illuminate\Http\Request; use Illuminate\Validation\ValidationException; use Throwable; -use Views; class PageController extends Controller { @@ -142,39 +142,8 @@ class PageController extends Controller $page->load(['comments.createdBy']); } - $chapterId = $page->getParentChapter(); - $allPageSlugs = $this->pageRepo->getPageByChapterID($chapterId[0]->id); - $pos = 0; - foreach ($allPageSlugs as $slug){ - if($pageSlug === $slug->slug){ - $currPagePos = $pos; - } - $pos++; - $pageUrl = $this->pageRepo->getBySlug($bookSlug, $slug->slug); - $urlLink[] = $pageUrl->getUrl(); - } - for($i=0; $i <= $currPagePos; $i++){ - $nextCount = $i+1; - $prevCount = $i-1; - $prevPage = '#'; - $nextPage = '#'; - if($nextCount < count($urlLink)){ - $nextPage = $urlLink[$nextCount]; - } - if($currPagePos == $i && $currPagePos != 0){ - $prevPage = $urlLink[$prevCount]; - } - } + $nextPreviousLocator = new NextPreviousContentLocator($page, $sidebarTree); - $disablePrev = ""; - $disableNxt = ""; - if($prevPage == "#"){ - $disablePrev = "disabled"; - } - if($nextPage == "#"){ - $disableNxt = "disabled"; - } - View::incrementFor($page); $this->setPageTitle($page->getShortName()); return view('pages.show', [ @@ -184,10 +153,8 @@ class PageController extends Controller 'sidebarTree' => $sidebarTree, 'commentsEnabled' => $commentsEnabled, 'pageNav' => $pageNav, - 'prevPage' => $prevPage, - 'nextPage' => $nextPage, - 'disablePrev' => $disablePrev, - 'disableNxt' => $disableNxt + 'next' => $nextPreviousLocator->getNext(), + 'previous' => $nextPreviousLocator->getPrevious(), ]); } @@ -280,8 +247,8 @@ class PageController extends Controller $updateTime = $draft->updated_at->timestamp; return response()->json([ - 'status' => 'success', - 'message' => trans('entities.pages_edit_draft_save_at'), + 'status' => 'success', + 'message' => trans('entities.pages_edit_draft_save_at'), 'timestamp' => $updateTime ]); } @@ -304,7 +271,7 @@ class PageController extends Controller { $page = $this->pageRepo->getBySlug($bookSlug, $pageSlug); $this->checkOwnablePermission('page-delete', $page); - $this->setPageTitle(trans('entities.pages_delete_named', ['pageName'=>$page->getShortName()])); + $this->setPageTitle(trans('entities.pages_delete_named', ['pageName' => $page->getShortName()])); return view('pages.delete', [ 'book' => $page->book, 'page' => $page, @@ -320,7 +287,7 @@ class PageController extends Controller { $page = $this->pageRepo->getById($pageId); $this->checkOwnablePermission('page-update', $page); - $this->setPageTitle(trans('entities.pages_delete_draft_named', ['pageName'=>$page->getShortName()])); + $this->setPageTitle(trans('entities.pages_delete_draft_named', ['pageName' => $page->getShortName()])); return view('pages.delete', [ 'book' => $page->book, 'page' => $page, @@ -415,7 +382,7 @@ class PageController extends Controller try { $parent = $this->pageRepo->move($page, $entitySelection); } catch (Exception $exception) { - if ($exception instanceof PermissionsException) { + if ($exception instanceof PermissionsException) { $this->showPermissionError(); } @@ -459,7 +426,7 @@ class PageController extends Controller try { $pageCopy = $this->pageRepo->copy($page, $entitySelection, $newName); } catch (Exception $exception) { - if ($exception instanceof PermissionsException) { + if ($exception instanceof PermissionsException) { $this->showPermissionError(); } @@ -480,7 +447,7 @@ class PageController extends Controller $page = $this->pageRepo->getBySlug($bookSlug, $pageSlug); $this->checkOwnablePermission('restrictions-manage', $page); return view('pages.permissions', [ - 'page' => $page, + 'page' => $page, ]); }