app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-template-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response)); $path = \str_replace('+', ' ', (string) ($request->getData('path') ?? '/')); $templates = WorkflowTemplateMapper::getAll() ->with('createdBy') ->with('tags') ->with('tags/title') ->where('virtualPath', $path) ->where('tags/title/language', $response->getLanguage()) ->execute(); list($collection, $parent) = CollectionMapper::getCollectionsByPath($path); $view->addData('parent', $parent); $view->addData('collections', $collection); $view->addData('path', $path); $view->addData('reports', $templates); $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 viewWorkflowTemplate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response)); /** @var \Modules\Workflow\Models\WorkflowTemplate $template */ $template = WorkflowTemplateMapper::get() ->with('source') ->with('source/sources') ->with('createdBy') ->where('id', (int) $request->getData('id')) ->execute(); $view->setData('template', $template); if ($template->source->findFile('template-profile.tpl.php')->id > 0) { require_once $template->source->findFile('WorkflowController.php')->getPath(); /** @var WorkflowControllerInterface $controller */ $controller = new \Modules\Workflow\Controller\WorkflowController($this->app, $template); $controller->createTemplateViewFromRequest($view, $request, $response); } else { $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-template'); } $head = $response->get('Content')->getData('head'); $head->addAsset(AssetType::JSLATE, 'Resources/mermaid/mermaid.min.js?v=1.0.0'); $head->addAsset(AssetType::JSLATE, 'Modules/Workflow/Controller.js?v=1.0.0', ['type' => 'module']); 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 viewWorkflowTemplateCreate(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-template-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response)); 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 viewDashboard(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response)); $instances = WorkflowInstanceAbstractMapper::getAll() ->execute(); $view->setData('instances', $instances); 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 viewInstanceList(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-instance-list'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response)); /** @var \Modules\Workflow\Models\WorkflowInstanceAbstract $instances */ $instances = WorkflowInstanceAbstractMapper::getAll() ->execute(); $view->setData('instances', $instances); 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 viewInstance(RequestAbstract $request, ResponseAbstract $response, mixed $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response)); /** @var \Modules\Workflow\Models\WorkflowInstanceAbstract $instance */ $instance = WorkflowInstanceAbstractMapper::get() ->where('id', (int) $request->getData('id')) ->execute(); /** @var \Modules\Workflow\Models\WorkflowTemplate $template */ $template = WorkflowTemplateMapper::get() ->with('source') ->with('source/sources') ->where('id', $instance->template->id) ->limit() ->execute(); $view->addData('template', $template); if ($template->source->findFile('instance-profile.tpl.php')->id > 0) { require_once $template->source->findFile('WorkflowController.php')->getPath(); /** @var WorkflowControllerInterface $controller */ $controller = new \Modules\Workflow\Controller\WorkflowController($this->app, $template); $controller->createInstanceViewFromRequest($view, $request, $response); } else { $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-instance'); } return $view; } }