app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-template-list'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response); $path = \strtr($request->getDataString('path') ?? '/', '+', ' '); $templates = WorkflowTemplateMapper::getAll() ->with('createdBy') ->with('tags') ->with('tags/title') ->where('virtualPath', $path) ->where('tags/title/language', $response->header->l11n->language) ->execute(); list($collection, $parent) = CollectionMapper::getCollectionsByPath($path); $view->data['parent'] = $parent; $view->data['collections'] = $collection; $view->data['path'] = $path; $view->data['reports'] = $templates; $view->data['account'] = $this->app->accountManager->get($request->header->account); return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewWorkflowTemplate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $head = $response->data['Content']->head; $nonce = $this->app->appSettings->getOption('script-nonce'); $head->addAsset(AssetType::JSLATE, 'Resources/mermaid/mermaid.min.js?v=' . $this->app->version, ['nonce' => $nonce]); $head->addAsset(AssetType::JSLATE, 'Modules/Workflow/Controller.js?v=' . self::VERSION, ['nonce' => $nonce, 'type' => 'module']); $view = new View($this->app->l11nManager, $request, $response); $view->data['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->data['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'); } return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewWorkflowTemplateCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-template-create'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response); return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface * * @todo remove, the router is already adjusted. * * @since 1.0.0 * @codeCoverageIgnore */ public function viewDashboard(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { return $this->viewInstanceList($request, $response, $data); } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewInstanceList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Workflow/Theme/Backend/workflow-instance-list'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1005501001, $request, $response); /** @var \Modules\Workflow\Models\WorkflowInstanceAbstract $instances */ $instances = WorkflowInstanceAbstractMapper::getAll() ->with('template') ->execute(); $view->data['instances'] = $instances; return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface * * @since 1.0.0 * @codeCoverageIgnore */ public function viewInstance(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->data['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->data['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; } }