app->l11nManager, $request, $response); /** @var \phpOMS\Model\Html\Head $head */ $head = $response->get('Content')->getData('head'); $head->addAsset(AssetType::CSS, 'Modules/Tasks/Theme/Backend/css/styles.css'); $view->setTemplate('/Modules/Tasks/Theme/Backend/task-dashboard'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); if ($request->getData('ptype') === 'p') { $view->setData('tasks', TaskMapper::withConditional('language', $response->getLanguage()) ::getAnyBeforePivot($request->header->account, (int) ($request->getData('id') ?? 0), limit: 25) ); } elseif ($request->getData('ptype') === 'n') { $view->setData('tasks', TaskMapper::withConditional('language', $response->getLanguage()) ::getAnyAfterPivot($request->header->account, (int) ($request->getData('id') ?? 0), limit: 25) ); } else { $view->setData('tasks', TaskMapper::withConditional('language', $response->getLanguage()) ::getAnyAfterPivot($request->header->account, 0, limit: 25) ); } return $view; } /** * {@inheritdoc} */ public function viewDashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Tasks/Theme/Backend/dashboard-task'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); $taskListView = new \Modules\Tasks\Theme\Backend\Components\Tasks\ListView($this->app->l11nManager, $request, $response); $taskListView->setTemplate('/Modules/Tasks/Theme/Backend/Components/Tasks/list'); $view->addData('tasklist', $taskListView); $tasks = TaskMapper::getNewest(5, null, depth: 1); $view->addData('tasks', $tasks); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewTaskView(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new TaskView($this->app->l11nManager, $request, $response); if (!TaskMapper::hasReadingPermission($request->header->account, (int) $request->getData('id'))) { $response->header->status = RequestStatusCode::R_403; $view->setTemplate('/Web/Backend/Error/403'); $this->app->loadLanguageFromPath( $response->getLanguage(), __DIR__ . '/../../../Web/Backend/Error/lang/' . $response->getLanguage() . '.lang.php' ); return $view; } /** @var \phpOMS\Model\Html\Head $head */ $head = $response->get('Content')->getData('head'); $head->addAsset(AssetType::CSS, 'Modules/Tasks/Theme/Backend/css/styles.css'); $task = TaskMapper::withConditional('language', $response->getLanguage())::get((int) $request->getData('id'), depth: 4); $accountId = $request->header->account; if (!($task->getCreatedBy()->getId() === $accountId || $task->isCCAccount($accountId) || $task->isToAccount($accountId)) && !$this->app->accountManager->get($accountId)->hasPermission( PermissionType::READ, $this->app->orgId, $this->app->appName, self::MODULE_NAME, PermissionState::TASK, $task->getId()) ) { $view->setTemplate('/Web/Backend/Error/403_inline'); $response->header->status = RequestStatusCode::R_403; return $view; } $view->setTemplate('/Modules/Tasks/Theme/Backend/task-single'); $view->addData('task', $task); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('accGrpSelector', $accGrpSelector); $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); $view->addData('editor', $editor); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewTaskCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Tasks/Theme/Backend/task-create'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); $view->addData('accGrpSelector', $accGrpSelector); $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); $view->addData('editor', $editor); return $view; } /** * Routing end-point for application behaviour. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param mixed $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewTaskAnalysis(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/Tasks/Theme/Backend/task-analysis'); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); return $view; } /** * Count unread messages * * @param int $account Account id * * @return int Returns the amount of unread tasks * * @since 1.0.0 */ public function openNav(int $account) : int { return TaskMapper::countUnread($account); } }