use BookStack\Actions\View;
use BookStack\Entities\Models\Book;
use BookStack\Entities\Repos\BookshelfRepo;
-use BookStack\Entities\Tools\PermissionsUpdater;
use BookStack\Entities\Tools\ShelfContext;
use BookStack\Exceptions\ImageUploadException;
use BookStack\Exceptions\NotFoundException;
+use BookStack\References\ReferenceFetcher;
use Exception;
use Illuminate\Http\Request;
use Illuminate\Validation\ValidationException;
{
protected BookshelfRepo $shelfRepo;
protected ShelfContext $shelfContext;
+ protected ReferenceFetcher $referenceFetcher;
- public function __construct(BookshelfRepo $shelfRepo, ShelfContext $shelfContext)
+ public function __construct(BookshelfRepo $shelfRepo, ShelfContext $shelfContext, ReferenceFetcher $referenceFetcher)
{
$this->shelfRepo = $shelfRepo;
$this->shelfContext = $shelfContext;
+ $this->referenceFetcher = $referenceFetcher;
}
/**
'activity' => $activities->entityActivity($shelf, 20, 1),
'order' => $order,
'sort' => $sort,
+ 'referenceCount' => $this->referenceFetcher->getPageReferenceCountToEntity($shelf),
]);
}
return redirect('/shelves');
}
-
- /**
- * Show the permissions view.
- */
- public function showPermissions(string $slug)
- {
- $shelf = $this->shelfRepo->getBySlug($slug);
- $this->checkOwnablePermission('restrictions-manage', $shelf);
-
- return view('shelves.permissions', [
- 'shelf' => $shelf,
- ]);
- }
-
- /**
- * Set the permissions for this bookshelf.
- */
- public function permissions(Request $request, PermissionsUpdater $permissionsUpdater, string $slug)
- {
- $shelf = $this->shelfRepo->getBySlug($slug);
- $this->checkOwnablePermission('restrictions-manage', $shelf);
-
- $permissionsUpdater->updateFromPermissionsForm($shelf, $request);
-
- $this->showSuccessNotification(trans('entities.shelves_permissions_updated'));
-
- return redirect($shelf->getUrl());
- }
-
- /**
- * Copy the permissions of a bookshelf to the child books.
- */
- public function copyPermissions(string $slug)
- {
- $shelf = $this->shelfRepo->getBySlug($slug);
- $this->checkOwnablePermission('restrictions-manage', $shelf);
-
- $updateCount = $this->shelfRepo->copyDownPermissions($shelf);
- $this->showSuccessNotification(trans('entities.shelves_copy_permission_success', ['count' => $updateCount]));
-
- return redirect($shelf->getUrl());
- }
}