get('Content')->getData('head'); $head->addAsset(AssetType::JSLATE, 'Modules/Editor/Controller.js', ['type' => 'module']); } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewEditorCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Editor/Theme/Backend/editor-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); $view->addData('editor', $editor); $tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('tagSelector', $tagSelector); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewEditorList(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Editor/Theme/Backend/editor-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $path = \str_replace('+', ' ', (string) ($request->getData('path') ?? '/')); $docs = EditorDocMapper::with('language', $response->getLanguage())::getByVirtualPath($path, $request->header->account); list($collection, $parent) = CollectionMapper::getCollectionsByPath($path); $view->addData('parent', $parent); $view->addData('collections', $collection); $view->addData('path', $path); $view->addData('docs', $docs); $view->addData('account', $this->app->accountManager->get($request->header->account)); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewEditorSingle(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); /** @var \Modules\Editor\Models\EditorDoc $doc */ $doc = EditorDocMapper::with('language', $response->getLanguage())::get((int) $request->getData('id')); $accountId = $request->header->account; if ($doc->createdBy->getId() !== $accountId && !$this->app->accountManager->get($accountId)->hasPermission( PermissionType::READ, $this->app->orgId, $this->app->appName, self::NAME, PermissionState::DOC, $doc->getId()) ) { $view->setTemplate('/Web/Backend/Error/403_inline'); $response->header->status = RequestStatusCode::R_403; return $view; } $view->setTemplate('/Modules/Editor/Theme/Backend/editor-single'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $view->addData('doc', $doc); $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); $view->addData('editor', $editor); $tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('tagSelector', $tagSelector); $view->addData('editable', $this->app->accountManager->get($accountId)->hasPermission( PermissionType::MODIFY, $this->app->orgId, $this->app->appName, self::NAME, PermissionState::DOC, $doc->getId()) ); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewEditorEdit(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); /** @var \Modules\Editor\Models\EditorDoc $doc */ $doc = EditorDocMapper::get((int) $request->getData('id')); $accountId = $request->header->account; if ($doc->createdBy->getId() !== $accountId && !$this->app->accountManager->get($accountId)->hasPermission( PermissionType::READ, $this->app->orgId, $this->app->appName, self::NAME, PermissionState::DOC, $doc->getId()) ) { $view->setTemplate('/Web/Backend/Error/403_inline'); $response->header->status = RequestStatusCode::R_403; return $view; } $view->setTemplate('/Modules/Editor/Theme/Backend/editor-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005301001, $request, $response)); $view->addData('doc', $doc); $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); $view->addData('editor', $editor); $tagSelector = new \Modules\Tag\Theme\Backend\Components\TagSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('tagSelector', $tagSelector); return $view; } }