use BookStack\Entities\Tools\PageEditActivity;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Repos\PageRepo;
+use BookStack\Entities\Tools\PermissionsUpdater;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\NotifyException;
use BookStack\Exceptions\PermissionsException;
$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', [
'current' => $page,
'sidebarTree' => $sidebarTree,
'commentsEnabled' => $commentsEnabled,
- 'pageNav' => $pageNav
+ 'pageNav' => $pageNav,
+ 'prevPage' => $prevPage,
+ 'nextPage' => $nextPage,
+ 'disablePrev' => $disablePrev,
+ 'disableNxt' => $disableNxt
]);
}
* @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());