/**
* Show a listing of all favourite items for the current user.
*/
- public function index(Request $request)
+ public function index(Request $request, QueryTopFavourites $topFavourites)
{
$viewCount = 20;
$page = intval($request->get('page', 1));
- $favourites = (new QueryTopFavourites())->run($viewCount + 1, (($page - 1) * $viewCount));
+ $favourites = $topFavourites->run($viewCount + 1, (($page - 1) * $viewCount));
$hasMoreLink = ($favourites->count() > $viewCount) ? url('/favourites?page=' . ($page + 1)) : null;
class BookQueries implements ProvidesEntityQueries
{
protected static array $listAttributes = [
- 'id', 'slug', 'name', 'description', 'created_at', 'updated_at', 'image_id'
+ 'id', 'slug', 'name', 'description',
+ 'created_at', 'updated_at', 'image_id', 'owned_by',
];
public function start(): Builder
class BookshelfQueries implements ProvidesEntityQueries
{
protected static array $listAttributes = [
- 'id', 'slug', 'name', 'description', 'created_at', 'updated_at', 'image_id'
+ 'id', 'slug', 'name', 'description',
+ 'created_at', 'updated_at', 'image_id', 'owned_by',
];
public function start(): Builder
{
protected static array $listAttributes = [
'id', 'slug', 'name', 'description', 'priority',
- 'created_at', 'updated_at'
+ 'book_id', 'created_at', 'updated_at', 'owned_by',
];
public function start(): Builder
{
protected static array $contentAttributes = [
'name', 'id', 'slug', 'book_id', 'chapter_id', 'draft',
- 'template', 'html', 'text', 'created_at', 'updated_at', 'priority'
+ 'template', 'html', 'text', 'created_at', 'updated_at', 'priority',
+ 'created_by', 'updated_by', 'owned_by',
];
protected static array $listAttributes = [
'name', 'id', 'slug', 'book_id', 'chapter_id', 'draft',
- 'template', 'text', 'created_at', 'updated_at', 'priority'
+ 'template', 'text', 'created_at', 'updated_at', 'priority', 'owned_by',
];
public function start(): Builder
protected function getContentProviderClosure(bool $blankIncludes): Closure
{
$contextPage = $this->page;
+ $queries = $this->pageQueries;
- return function (PageIncludeTag $tag) use ($blankIncludes, $contextPage): PageIncludeContent {
+ return function (PageIncludeTag $tag) use ($blankIncludes, $contextPage, $queries): PageIncludeContent {
if ($blankIncludes) {
return PageIncludeContent::fromHtmlAndTag('', $tag);
}
- $matchedPage = $this->pageQueries->findVisibleById($tag->getPageId());
+ $matchedPage = $queries->findVisibleById($tag->getPageId());
$content = PageIncludeContent::fromHtmlAndTag($matchedPage->html ?? '', $tag);
if (Theme::hasListeners(ThemeEvents::PAGE_INCLUDE_PARSE)) {
$templates = $this->queries->pages->visibleTemplates()
->orderBy('name', 'asc')
->take(10)
- ->get();
+ ->paginate()
+ ->withPath('/templates');
$draftsEnabled = auth()->check();
}
// Check for a current draft version for this user
- $userDraft = $this->queries->revisions->findLatestCurrentUserDraftsForPageId($page->id)->first();
+ $userDraft = $this->queries->revisions->findLatestCurrentUserDraftsForPageId($page->id);
if (!is_null($userDraft)) {
$page->forceFill($userDraft->only(['name', 'html', 'markdown']));
$isDraftRevision = true;
{
public function __construct(
protected EntityQueries $queries,
+ protected ShelfContext $shelfContext,
) {
}
// Book
// Gets just the books in a shelf if shelf is in context
if ($entity instanceof Book) {
- $contextShelf = (new ShelfContext())->getContextualShelfForBook($entity);
+ $contextShelf = $this->shelfContext->getContextualShelfForBook($entity);
if ($contextShelf) {
$entities = $contextShelf->visibleBooks()->get();
} else {