app->l11nManager, $request, $response); $view->setTemplate('/Modules/OnlineResourceWatcher/Theme/Backend/resource-list'); /* Table functionality */ $searchFieldData = $request->getLike('.*\-p\-.*'); $searchField = []; foreach ($searchFieldData as $key => $data) { if ($data === '1') { $split = \explode('-', $key); $member = \end($split); $searchField[] = $member; } } $filterFieldData = $request->getLike('.*\-f\-.*?\-t'); $filterField = []; foreach ($filterFieldData as $key => $type) { $split = \explode('-', $key); \end($split); $member = \prev($split); if ($request->hasData('organizationUserList-f-' . $member . '-f1')) { $filterField[$member] = [ 'type' => $type, 'value1' => $request->getData('organizationUserList-f-' . $member . '-f1'), 'logic1' => $request->getData('organizationUserList-f-' . $member . '-o1'), 'value2' => $request->getData('organizationUserList-f-' . $member . '-f2'), 'logic2' => $request->getData('organizationUserList-f-' . $member . '-o2'), ]; } } $pageLimit = 25; $view->data['pageLimit'] = $pageLimit; $mapper = ResourceMapper::getAll()->with('createdBy'); $list = ResourceMapper::find( search: $request->getDataString('search'), mapper: $mapper, id: $request->getDataInt('id') ?? 0, secondaryId: $request->getDataString('subid') ?? '', type: $request->getDataString('pType'), pageLimit: empty($request->getDataInt('limit') ?? 0) ? 100 : ((int) $request->getData('limit')), sortBy: $request->getDataString('sort_by') ?? '', sortOrder: $request->getDataString('sort_order') ?? OrderType::DESC, searchFields: $searchField, filters: $filterField ); $view->data['resources'] = $list['data']; $tableView = new TableView($this->app->l11nManager, $request, $response); $tableView->module = 'OnlineResourceWatcher'; $tableView->theme = 'Backend'; $tableView->setTitleTemplate('/Web/Backend/Themes/table-title'); $tableView->setColumnHeaderElementTemplate('/Web/Backend/Themes/header-element-table'); $tableView->setFilterTemplate('/Web/Backend/Themes/popup-filter-table'); $tableView->setSortTemplate('/Web/Backend/Themes/sort-table'); $tableView->setData('hasPrevious', $list['hasPrevious']); $tableView->setData('hasNext', $list['hasNext']); $view->data['tableView'] = $tableView; return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewResource(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/OnlineResourceWatcher/Theme/Backend/resource-view'); /** @var \Modules\OnlineResourceWatcher\Models\Resource $resource */ $resource = ResourceMapper::get() ->with('reports') ->where('id', (int) $request->getData('id')) ->limit(25, 'reports') ->execute(); $view->data['resource'] = $resource; return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewResourceCreate(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { $view = new View($this->app->l11nManager, $request, $response); $view->setTemplate('/Modules/OnlineResourceWatcher/Theme/Backend/resource-create'); return $view; } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewReportList(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { return new View($this->app->l11nManager, $request, $response); } /** * Routing end-point for application behavior. * * @param RequestAbstract $request Request * @param ResponseAbstract $response Response * @param array $data Generic data * * @return RenderableInterface Returns a renderable object * * @since 1.0.0 * @codeCoverageIgnore */ public function viewReport(RequestAbstract $request, ResponseAbstract $response, array $data = []) : RenderableInterface { return new View($this->app->l11nManager, $request, $response); } }