0
0
Fork 0
mirror of https://github.com/BookStackApp/BookStack.git synced 2025-05-20 15:09:38 +00:00

Started work on hierachy conversion actions

- Updates book/shelf cover image handling for easier cloning/handling.
- Adds core logic for promoting books/chapters up a level.
- Enables usage of book/shelf cover image via API.

Related to 
This commit is contained in:
Dan Brown 2022-06-13 17:20:21 +01:00
parent 0a05119aa5
commit d676e1e824
No known key found for this signature in database
GPG key ID: 46D9F943C24A2EF9
10 changed files with 166 additions and 72 deletions
app/Http/Controllers

View file

@ -83,15 +83,14 @@ class BookshelfController extends Controller
public function store(Request $request)
{
$this->checkPermission('bookshelf-create-all');
$this->validate($request, [
$validated = $this->validate($request, [
'name' => ['required', 'string', 'max:255'],
'description' => ['string', 'max:1000'],
'image' => array_merge(['nullable'], $this->getImageValidationRules()),
]);
$bookIds = explode(',', $request->get('books', ''));
$shelf = $this->bookshelfRepo->create($request->all(), $bookIds);
$this->bookshelfRepo->updateCoverImage($shelf, $request->file('image', null));
$shelf = $this->bookshelfRepo->create($validated, $bookIds);
return redirect($shelf->getUrl());
}
@ -160,16 +159,20 @@ class BookshelfController extends Controller
{
$shelf = $this->bookshelfRepo->getBySlug($slug);
$this->checkOwnablePermission('bookshelf-update', $shelf);
$this->validate($request, [
$validated = $this->validate($request, [
'name' => ['required', 'string', 'max:255'],
'description' => ['string', 'max:1000'],
'image' => array_merge(['nullable'], $this->getImageValidationRules()),
]);
if ($request->has('image_reset')) {
$validated['image'] = null;
} else if (is_null($validated['image'])) {
unset($validated['image']);
}
$bookIds = explode(',', $request->get('books', ''));
$shelf = $this->bookshelfRepo->update($shelf, $request->all(), $bookIds);
$resetCover = $request->has('image_reset');
$this->bookshelfRepo->updateCoverImage($shelf, $request->file('image', null), $resetCover);
$shelf = $this->bookshelfRepo->update($shelf, $validated, $bookIds);
return redirect($shelf->getUrl());
}