{
return $this->books()->where('id', '=', $book->id)->count() > 0;
}
+
+ /**
+ * Add a book to the end of this shelf.
+ * @param Book $book
+ */
+ public function appendBook(Book $book)
+ {
+ if (!$this->contains($book)) {
+ return;
+ }
+
+ $maxOrder = $this->books()->max('order');
+ $this->books()->attach($book->id, ['order' => $maxOrder + 1]);
+ }
}
namespace BookStack\Entities\Repos;
-
use BookStack\Entities\Book;
-use BookStack\Entities\Bookshelf;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\NotifyException;
return $book;
}
- /**
- * Append a Book to a BookShelf.
- * @param Bookshelf $shelf
- * @param Book $book
- */
- public function appendBookToShelf(Bookshelf $shelf, Book $book)
- {
- if ($shelf->contains($book)) {
- return;
- }
-
- $maxOrder = $shelf->books()->max('order');
- $shelf->books()->attach($book->id, ['order' => $maxOrder + 1]);
- }
-
/**
* Destroy the provided book and all its child entities.
* @param Book $book
use Activity;
use BookStack\Auth\UserRepo;
use BookStack\Entities\Book;
+use BookStack\Entities\Bookshelf;
use BookStack\Entities\EntityContextManager;
use BookStack\Entities\Repos\BookRepo;
-use BookStack\Entities\Repos\EntityRepo;
-use BookStack\Entities\ExportService;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\NotifyException;
$bookshelf = null;
if ($shelfSlug !== null) {
+ /** @var Bookshelf $bookshelf */
$bookshelf = $this->bookRepo->getEntityBySlug('bookshelf', $shelfSlug);
$this->checkOwnablePermission('bookshelf-update', $bookshelf);
}
+ /** @var Book $book */
$book = $this->bookRepo->createFromInput('book', $request->all());
$this->bookUpdateActions($book, $request);
Activity::add($book, 'book_create', $book->id);
if ($bookshelf) {
- $this->bookRepo->appendBookToShelf($bookshelf, $book);
+ $bookshelf->appendBook($book);
Activity::add($bookshelf, 'bookshelf_update');
}