From afc3583be875a1d7fd66b6ef14752c08695edab3 Mon Sep 17 00:00:00 2001 From: Dan Brown Date: Thu, 7 Apr 2016 19:03:00 +0100 Subject: [PATCH] Made new pages in chapters have a better inital priority --- app/Http/Controllers/PageController.php | 7 ++++++- app/Repos/ChapterRepo.php | 12 ++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/PageController.php b/app/Http/Controllers/PageController.php index c3d8e396c..e250d8c85 100644 --- a/app/Http/Controllers/PageController.php +++ b/app/Http/Controllers/PageController.php @@ -88,7 +88,6 @@ class PageController extends Controller $input = $request->all(); $book = $this->bookRepo->getBySlug($bookSlug); - $input['priority'] = $this->bookRepo->getNewPriority($book); $draftPage = $this->pageRepo->getById($pageId, true); @@ -96,6 +95,12 @@ class PageController extends Controller $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); diff --git a/app/Repos/ChapterRepo.php b/app/Repos/ChapterRepo.php index f9f31a7aa..530f550b1 100644 --- a/app/Repos/ChapterRepo.php +++ b/app/Repos/ChapterRepo.php @@ -136,6 +136,18 @@ class ChapterRepo extends EntityRepo 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