{
$book = $this->bookRepo->getBySlug($slug);
$bookChildren = (new BookContents($book))->getTree(true);
+ $bookParentShelves = $book->shelves()->visible();
Views::add($book);
if ($request->has('shelf')) {
'book' => $book,
'current' => $book,
'bookChildren' => $bookChildren,
+ 'bookParentShelves' => $bookParentShelves,
'activity' => Activity::entityActivity($book, 20, 1)
]);
}
'books_sort_chapters_last' => 'Chapters Last',
'books_sort_show_other' => 'Show Other Books',
'books_sort_save' => 'Save New Order',
+ 'book_parent_shelves_empty' => 'Shelves that this book is on will appear here.',
// Chapters
'chapter' => 'Chapter',
@stop
-
@section('right')
-
<div class="mb-xl">
<h5>{{ trans('common.details') }}</h5>
<div class="text-small text-muted blended-links">
</div>
</div>
-
<div class="actions mb-xl">
<h5>{{ trans('common.actions') }}</h5>
<div class="icon-list text-primary">
</div>
</div>
+ <div class="actions mb-xl">
+ <h5>{{ trans('entities.shelves_long') }}</h5>
+
+ @if(count($bookParentShelves) > 0)
+ @include('partials.entity-list', ['entities' => $bookParentShelves, 'style' => 'compact'])
+ @else
+ <div class="body text-muted">{{ trans('entities.book_parent_shelves_empty') }}</div>
+ @endif
+ </div>
+
@stop
@section('left')
$pageVisit->assertElementNotContains('.breadcrumbs', $shelf->getShortName());
}
+ public function test_bookshelves_show_on_book()
+ {
+ // Create shelf
+ $shelfInfo = [
+ 'name' => 'My test shelf' . Str::random(4),
+ 'description' => 'Test shelf description ' . Str::random(10)
+ ];
+
+ $this->asEditor()->post('/shelves', $shelfInfo);
+ $shelf = Bookshelf::where('name', '=', $shelfInfo['name'])->first();
+
+ // Create book and add to shelf
+ $this->asEditor()->post($shelf->getUrl('/create-book'), [
+ 'name' => 'Test book name',
+ 'description' => 'Book in shelf description'
+ ]);
+
+ $newBook = Book::query()->orderBy('id', 'desc')->first();
+
+ $resp = $this->asEditor()->get($newBook->getUrl());
+ $resp->assertSee($shelfInfo['name']);
+
+ // Remove shelf
+ $this->delete($shelf->getUrl());
+
+ $resp = $this->asEditor()->get($newBook->getUrl());
+ $resp->assertDontSee($shelfInfo['name']);
+ }
}