$input = $request->all();
$book = $this->bookRepo->getBySlug($bookSlug);
- $input['priority'] = $this->bookRepo->getNewPriority($book);
$draftPage = $this->pageRepo->getById($pageId, true);
$parent = $chapterId !== 0 ? $this->chapterRepo->getById($chapterId) : $book;
$this->checkOwnablePermission('page-create', $parent);
+ if ($parent->isA('chapter')) {
+ $input['priority'] = $this->chapterRepo->getNewPriority($parent);
+ } else {
+ $input['priority'] = $this->bookRepo->getNewPriority($parent);
+ }
+
$page = $this->pageRepo->publishDraft($draftPage, $input);
Activity::add($page, 'page_create', $book->id);
return $slug;
}
+ /**
+ * Get a new priority value for a new page to be added
+ * to the given chapter.
+ * @param Chapter $chapter
+ * @return int
+ */
+ public function getNewPriority(Chapter $chapter)
+ {
+ $lastPage = $chapter->pages->last();
+ return $lastPage !== null ? $lastPage->priority + 1 : 0;
+ }
+
/**
* Get chapters by the given search term.
* @param string $term