X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/c157dc3490c39aa236e22714019a649ebeb11f13..refs/pull/2511/head:/app/Http/Controllers/PageController.php diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index 862ba3d7f..2bfd55fa0 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -1,12 +1,11 @@ pageRepo = $pageRepo; - parent::__construct(); } /** @@ -144,6 +142,38 @@ 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]; + } + } + + $disablePrev = ""; + $disableNxt = ""; + if($prevPage == "#"){ + $disablePrev = "disabled"; + } + if($nextPage == "#"){ + $disableNxt = "disabled"; + } Views::add($page); $this->setPageTitle($page->getShortName()); return view('pages.show', [ @@ -152,7 +182,11 @@ class PageController extends Controller 'current' => $page, 'sidebarTree' => $sidebarTree, 'commentsEnabled' => $commentsEnabled, - 'pageNav' => $pageNav + 'pageNav' => $pageNav, + 'prevPage' => $prevPage, + 'nextPage' => $nextPage, + 'disablePrev' => $disablePrev, + 'disableNxt' => $disableNxt ]); } @@ -456,14 +490,12 @@ class PageController extends Controller * @throws NotFoundException * @throws Throwable */ - public function permissions(Request $request, string $bookSlug, string $pageSlug) + public function permissions(Request $request, PermissionsUpdater $permissionsUpdater, string $bookSlug, string $pageSlug) { $page = $this->pageRepo->getBySlug($bookSlug, $pageSlug); $this->checkOwnablePermission('restrictions-manage', $page); - $restricted = $request->get('restricted') === 'true'; - $permissions = $request->filled('restrictions') ? collect($request->get('restrictions')) : null; - $this->pageRepo->updatePermissions($page, $restricted, $permissions); + $permissionsUpdater->updateFromPermissionsForm($page, $request); $this->showSuccessNotification(trans('entities.pages_permissions_success')); return redirect($page->getUrl());