page = $page; $this->pageRepo = $pageRepo; $this->viewData = $this->build(); } public function getViewData(): array { return $this->viewData; } public function getWarnings(): array { return $this->warnings; } protected function build(): array { $page = clone $this->page; $isDraft = boolval($this->page->draft); $templates = $this->pageRepo->getTemplates(10); $draftsEnabled = auth()->check(); $isDraftRevision = false; $this->warnings = []; $editActivity = new PageEditActivity($page); if ($editActivity->hasActiveEditing()) { $this->warnings[] = $editActivity->activeEditingMessage(); } // Check for a current draft version for this user $userDraft = $this->pageRepo->getUserDraft($page); if ($userDraft !== null) { $page->forceFill($userDraft->only(['name', 'html', 'markdown'])); $isDraftRevision = true; $this->warnings[] = $editActivity->getEditingActiveDraftMessage($userDraft); } return [ 'page' => $page, 'book' => $page->book, 'isDraft' => $isDraft, 'isDraftRevision' => $isDraftRevision, 'draftsEnabled' => $draftsEnabled, 'templates' => $templates, 'editor' => setting('app-editor') === 'wysiwyg' ? 'wysiwyg' : 'markdown', ]; } }