namespace BookStack\Entities\Tools;
+use BookStack\Activity\Tools\CommentTree;
use BookStack\Entities\Models\Page;
use BookStack\Entities\Repos\PageRepo;
use BookStack\Entities\Tools\Markdown\HtmlToMarkdown;
class PageEditorData
{
- protected Page $page;
- protected PageRepo $pageRepo;
- protected string $requestedEditor;
-
protected array $viewData;
protected array $warnings;
- public function __construct(Page $page, PageRepo $pageRepo, string $requestedEditor)
- {
- $this->page = $page;
- $this->pageRepo = $pageRepo;
- $this->requestedEditor = $requestedEditor;
-
+ public function __construct(
+ protected Page $page,
+ protected PageRepo $pageRepo,
+ protected string $requestedEditor
+ ) {
$this->viewData = $this->build();
}
'draftsEnabled' => $draftsEnabled,
'templates' => $templates,
'editor' => $editorType,
+ 'comments' => new CommentTree($page),
];
}
*/
protected function getEditorType(Page $page): string
{
- $emptyPage = empty($page->html) && empty($page->markdown);
- $pageType = (!empty($page->html) && empty($page->markdown)) ? 'wysiwyg' : 'markdown';
- $systemDefault = setting('app-editor') === 'wysiwyg' ? 'wysiwyg' : 'markdown';
- $editorType = $emptyPage ? $systemDefault : $pageType;
+ $editorType = $page->editor ?: self::getSystemDefaultEditor();
// Use requested editor if valid and if we have permission
$requestedType = explode('-', $this->requestedEditor)[0];
return $editorType;
}
-}
\ No newline at end of file
+ /**
+ * Get the configured system default editor.
+ */
+ public static function getSystemDefaultEditor(): string
+ {
+ return setting('app-editor') === 'markdown' ? 'markdown' : 'wysiwyg';
+ }
+}