From: Dan Brown Date: Thu, 17 Dec 2020 21:47:59 +0000 (+0000) Subject: Merge branch 'v0.30.x' X-Git-Tag: v0.31.0~3^2~21 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/9884cca00c010215db60db092048cb667808ee88 Merge branch 'v0.30.x' --- 9884cca00c010215db60db092048cb667808ee88 diff --cc app/Entities/Models/Chapter.php index d736e2108,000000000..257b19e37 mode 100644,000000..100644 --- a/app/Entities/Models/Chapter.php +++ b/app/Entities/Models/Chapter.php @@@ -1,61 -1,0 +1,52 @@@ + $pages + */ +class Chapter extends BookChild +{ + public $searchFactor = 1.3; + + protected $fillable = ['name', 'description', 'priority', 'book_id']; + protected $hidden = ['restricted', 'pivot', 'deleted_at']; + + /** + * Get the pages that this chapter contains. + * @param string $dir + * @return mixed + */ + public function pages($dir = 'ASC') + { + return $this->hasMany(Page::class)->orderBy('priority', $dir); + } + + /** + * Get the url of this chapter. + */ + public function getUrl($path = ''): string + { + $parts = [ + 'books', + urlencode($this->getAttribute('bookSlug') ?? $this->book->slug), + 'chapter', + urlencode($this->slug), + trim($path, '/'), + ]; + + return url('/' . implode('/', $parts)); + } + - /** - * Check if this chapter has any child pages. - * @return bool - */ - public function hasChildren() - { - return count($this->pages) > 0; - } - + /** + * Get the visible pages in this chapter. + */ + public function getVisiblePages(): Collection + { + return $this->pages()->visible() + ->orderBy('draft', 'desc') + ->orderBy('priority', 'asc') + ->get(); + } +} diff --cc resources/views/partials/book-tree.blade.php index dcc76cd83,6e308bb09..15b583289 --- a/resources/views/partials/book-tree.blade.php +++ b/resources/views/partials/book-tree.blade.php @@@ -12,10 -12,10 +12,10 @@@ @endif @foreach($sidebarTree as $bookChild) -
  • +
  • @include('partials.entity-list-item-basic', ['entity' => $bookChild, 'classes' => $current->matches($bookChild)? 'selected' : '']) - @if($bookChild->isA('chapter') && count($bookChild->pages) > 0) + @if($bookChild->isA('chapter') && count($bookChild->visible_pages) > 0)