app->l11nManager, $request, $response); $view->setTemplate('/Modules/QualityManagement/Theme/Backend/report-dashboard'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1008502001, $request, $response); $view->data['reports'] = ReportMapper::getAnyRelatedToUser($request->header->account) ->with('task') ->with('task/createdBy') ->with('task/for') ->with('task/taskElements') ->with('task/taskElements/accRelation') ->with('task/taskElements/accRelation/relation') ->with('app') ->sort('task/createdAt', OrderType::DESC) ->limit(50) ->paginate( 'id', $request->getDataString('ptype'), $request->getDataInt('offset') ) ->executeGetArray(); $openQuery = new Builder($this->app->dbPool->get(), true); $openQuery->innerJoin(TaskMapper::TABLE, TaskMapper::TABLE . '_d2_task') ->on(ReportMapper::TABLE . '_d1.qualitymgmt_report_task', '=', TaskMapper::TABLE . '_d2_task.task_id') ->innerJoin(TaskElementMapper::TABLE) ->on(TaskMapper::TABLE . '_d2_task.' . TaskMapper::PRIMARYFIELD, '=', TaskElementMapper::TABLE . '.task_element_task') ->innerJoin(AccountRelationMapper::TABLE) ->on(TaskElementMapper::TABLE . '.' . TaskElementMapper::PRIMARYFIELD, '=', AccountRelationMapper::TABLE . '.task_account_task_element') ->andWhere(AccountRelationMapper::TABLE . '.task_account_account', '=', $request->header->account); $view->data['open'] = ReportMapper::getAll() ->with('task') ->with('task/createdBy') ->where('task/type', TaskType::TEMPLATE, '!=') ->where('task/status', TaskStatus::OPEN) ->sort('task/createdAt', OrderType::DESC) ->query($openQuery) ->executeGetArray(); 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 viewQualityReportCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/QualityManagement/Theme/Backend/report-create'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1008502001, $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 * * @since 1.0.0 * @codeCoverageIgnore */ public function viewQualityReport(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new ReportView($this->app->l11nManager, $request, $response); $view->data['report'] = ReportMapper::get() ->with('task') ->with('task/createdBy') ->with('task/tags') ->with('task/tags/title') ->with('task/taskElements') ->with('task/taskElements/createdBy') ->with('task/taskElements/files') ->with('task/attributes') ->with('task/attributes/type') ->with('task/attributes/value') ->with('task/for') ->where('id', $request->getDataInt('id') ?? 0) ->where('task/tags/title/language', $request->header->l11n->language) ->execute(); if ($view->data['report']->id === 0) { $response->header->status = RequestStatusCode::R_404; $view->setTemplate('/Web/Backend/Error/404'); return $view; } $view->setTemplate('/Modules/QualityManagement/Theme/Backend/report-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1008502001, $request, $response); /** @var \Model\Setting $profileImage */ $profileImage = $this->app->appSettings->get(names: ProfileSettingsEnum::DEFAULT_PROFILE_IMAGE, module: 'Profile'); /** @var \Modules\Media\Models\Media $image */ $image = MediaMapper::get()->where('id', (int) $profileImage->content)->execute(); $view->defaultProfileImage = $image; $accGrpSelector = new \Modules\Profile\Theme\Backend\Components\AccountGroupSelector\BaseView($this->app->l11nManager, $request, $response); $view->data['accGrpSelector'] = $accGrpSelector; $editor = new \Modules\Editor\Theme\Backend\Components\Editor\BaseView($this->app->l11nManager, $request, $response); $view->data['editor'] = $editor; 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 viewAuditList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/QualityManagement/Theme/Backend/audit-list'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1008502001, $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 * * @since 1.0.0 * @codeCoverageIgnore */ public function viewAudit(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/QualityManagement/Theme/Backend/audit-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1008502001, $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 * * @since 1.0.0 * @codeCoverageIgnore */ public function viewAuditCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/QualityManagement/Theme/Backend/audit-view'); $view->data['nav'] = $this->app->moduleManager->get('Navigation')->createNavigationMid(1008502001, $request, $response); return $view; } }