mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-11-22 11:38:03 +08:00
Moved shelf book append logic
This commit is contained in:
parent
615b2de433
commit
f7a5a0705b
|
@ -104,4 +104,18 @@ class Bookshelf extends Entity
|
|||
{
|
||||
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]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,9 +3,7 @@
|
|||
|
||||
namespace BookStack\Entities\Repos;
|
||||
|
||||
|
||||
use BookStack\Entities\Book;
|
||||
use BookStack\Entities\Bookshelf;
|
||||
use BookStack\Exceptions\NotFoundException;
|
||||
use BookStack\Exceptions\NotifyException;
|
||||
|
||||
|
@ -25,21 +23,6 @@ class BookRepo extends EntityRepo
|
|||
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
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
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;
|
||||
|
@ -121,16 +120,18 @@ class BookController extends Controller
|
|||
|
||||
$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');
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user