assertRouteAccess(); } public function indexAction() { $this->addTitleTab(t('Users')); $db = $this->getDb(); $users = User::on($db); $this->handleSearchRequest($users); $limitControl = $this->createLimitControl(); $paginationControl = $this->createPaginationControl($users); $sortControl = $this->createSortControl( $users, [ 'user.display_name' => t('Name'), 'user.email' => t('Email'), 'user.pager' => t('Pager Address / Number') ] ); $searchBar = $this->createSearchBar($users, [ $limitControl->getLimitParam(), $sortControl->getSortParam() ]); if ($searchBar->hasBeenSent() && ! $searchBar->isValid()) { if ($searchBar->hasBeenSubmitted()) { $filter = $this->getFilter(); } else { $this->addControl($searchBar); $this->sendMultipartUpdate(); return; } } else { $filter = $searchBar->getFilter(); } $this->filter($users, $filter); yield $this->export($users); $this->addControl($paginationControl); $this->addControl($sortControl); $this->addControl($limitControl); $this->addControl($searchBar); $this->addContent(new UserList($users)); if (! $searchBar->hasBeenSubmitted() && $searchBar->hasBeenSent()) { $this->sendMultipartUpdate(); } $this->setAutorefreshInterval(10); } public function completeAction() { $suggestions = new ObjectSuggestions(); $suggestions->setModel(User::class); $suggestions->forRequest(ServerRequest::fromGlobals()); $this->getDocument()->add($suggestions); } public function searchEditorAction() { $editor = $this->createSearchEditor(User::on($this->getDb()), [ LimitControl::DEFAULT_LIMIT_PARAM, SortControl::DEFAULT_SORT_PARAM, ViewModeSwitcher::DEFAULT_VIEW_MODE_PARAM ]); $this->getDocument()->add($editor); $this->setTitle(t('Adjust Filter')); } }