mirror of
https://github.com/BookStackApp/BookStack.git
synced 2025-04-28 23:24:06 +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;
|
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;
|
namespace BookStack\Entities\Repos;
|
||||||
|
|
||||||
|
|
||||||
use BookStack\Entities\Book;
|
use BookStack\Entities\Book;
|
||||||
use BookStack\Entities\Bookshelf;
|
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Exceptions\NotifyException;
|
use BookStack\Exceptions\NotifyException;
|
||||||
|
|
||||||
@ -25,21 +23,6 @@ class BookRepo extends EntityRepo
|
|||||||
return $book;
|
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.
|
* Destroy the provided book and all its child entities.
|
||||||
* @param Book $book
|
* @param Book $book
|
||||||
|
@ -3,10 +3,9 @@
|
|||||||
use Activity;
|
use Activity;
|
||||||
use BookStack\Auth\UserRepo;
|
use BookStack\Auth\UserRepo;
|
||||||
use BookStack\Entities\Book;
|
use BookStack\Entities\Book;
|
||||||
|
use BookStack\Entities\Bookshelf;
|
||||||
use BookStack\Entities\EntityContextManager;
|
use BookStack\Entities\EntityContextManager;
|
||||||
use BookStack\Entities\Repos\BookRepo;
|
use BookStack\Entities\Repos\BookRepo;
|
||||||
use BookStack\Entities\Repos\EntityRepo;
|
|
||||||
use BookStack\Entities\ExportService;
|
|
||||||
use BookStack\Exceptions\ImageUploadException;
|
use BookStack\Exceptions\ImageUploadException;
|
||||||
use BookStack\Exceptions\NotFoundException;
|
use BookStack\Exceptions\NotFoundException;
|
||||||
use BookStack\Exceptions\NotifyException;
|
use BookStack\Exceptions\NotifyException;
|
||||||
@ -121,16 +120,18 @@ class BookController extends Controller
|
|||||||
|
|
||||||
$bookshelf = null;
|
$bookshelf = null;
|
||||||
if ($shelfSlug !== null) {
|
if ($shelfSlug !== null) {
|
||||||
|
/** @var Bookshelf $bookshelf */
|
||||||
$bookshelf = $this->bookRepo->getEntityBySlug('bookshelf', $shelfSlug);
|
$bookshelf = $this->bookRepo->getEntityBySlug('bookshelf', $shelfSlug);
|
||||||
$this->checkOwnablePermission('bookshelf-update', $bookshelf);
|
$this->checkOwnablePermission('bookshelf-update', $bookshelf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @var Book $book */
|
||||||
$book = $this->bookRepo->createFromInput('book', $request->all());
|
$book = $this->bookRepo->createFromInput('book', $request->all());
|
||||||
$this->bookUpdateActions($book, $request);
|
$this->bookUpdateActions($book, $request);
|
||||||
Activity::add($book, 'book_create', $book->id);
|
Activity::add($book, 'book_create', $book->id);
|
||||||
|
|
||||||
if ($bookshelf) {
|
if ($bookshelf) {
|
||||||
$this->bookRepo->appendBookToShelf($bookshelf, $book);
|
$bookshelf->appendBook($book);
|
||||||
Activity::add($bookshelf, 'bookshelf_update');
|
Activity::add($bookshelf, 'bookshelf_update');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user