]> BookStack Code Mirror - bookstack/commitdiff
Merge branch 'v0.30.x'
authorDan Brown <redacted>
Thu, 17 Dec 2020 21:47:59 +0000 (21:47 +0000)
committerDan Brown <redacted>
Thu, 17 Dec 2020 21:47:59 +0000 (21:47 +0000)
1  2 
app/Entities/Models/Chapter.php
app/Entities/Tools/BookContents.php
resources/views/books/sort-box.blade.php
resources/views/partials/book-tree.blade.php
tests/Permissions/RestrictionsTest.php

index d736e2108d405194d7f0c93f92056a0a2abf2172,0000000000000000000000000000000000000000..257b19e37e45afe981ffeb7cf6ccfcd82cdefec3
mode 100644,000000..100644
--- /dev/null
@@@ -1,61 -1,0 +1,52 @@@
-     /**
-      * Check if this chapter has any child pages.
-      * @return bool
-      */
-     public function hasChildren()
-     {
-         return count($this->pages) > 0;
-     }
 +<?php namespace BookStack\Entities\Models;
 +
 +use Illuminate\Support\Collection;
 +
 +/**
 + * Class Chapter
 + * @property Collection<Page> $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));
 +    }
 +
 +    /**
 +     * Get the visible pages in this chapter.
 +     */
 +    public function getVisiblePages(): Collection
 +    {
 +        return $this->pages()->visible()
 +        ->orderBy('draft', 'desc')
 +        ->orderBy('priority', 'asc')
 +        ->get();
 +    }
 +}
Simple merge
index dcc76cd83f333fc464a293d3f0a05722cd02abda,6e308bb09f06447f588b62e512edd5d3d588dc99..15b5832897d01756c7fc59b22a89805bdf7a8bbe
          @endif
  
          @foreach($sidebarTree as $bookChild)
 -            <li class="list-item-{{ $bookChild->getClassName() }} {{ $bookChild->getClassName() }} {{ $bookChild->isA('page') && $bookChild->draft ? 'draft' : '' }}">
 +            <li class="list-item-{{ $bookChild->getType() }} {{ $bookChild->getType() }} {{ $bookChild->isA('page') && $bookChild->draft ? 'draft' : '' }}">
                  @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)
                      <div class="entity-list-item no-hover">
                          <span role="presentation" class="icon text-chapter"></span>
                          <div class="content">