Differential D9204 Diff 31630 src/applications/spaces/controller/PhabricatorSpacesListController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/spaces/controller/PhabricatorSpacesListController.php
- This file was added.
| <?php | |||||
| final class PhabricatorSpacesListController | |||||
| extends PhabricatorSpacesController { | |||||
| public function shouldAllowPublic() { | |||||
| return true; | |||||
| } | |||||
| public function handleRequest(AphrontRequest $request) { | |||||
| $request = $this->getRequest(); | |||||
| $controller = id(new PhabricatorApplicationSearchController($request)) | |||||
| ->setQueryKey($request->getURIData('queryKey')) | |||||
| ->setSearchEngine(new PhabricatorSpacesNamespaceSearchEngine()) | |||||
| ->setNavigation($this->buildSideNavView()); | |||||
| return $this->delegateToController($controller); | |||||
| } | |||||
| public function buildSideNavView($for_app = false) { | |||||
| $user = $this->getRequest()->getUser(); | |||||
| $nav = new AphrontSideNavFilterView(); | |||||
| $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); | |||||
| id(new PhabricatorSpacesNamespaceSearchEngine()) | |||||
| ->setViewer($user) | |||||
| ->addNavigationItems($nav->getMenu()); | |||||
| $nav->selectFilter(null); | |||||
| return $nav; | |||||
| } | |||||
| public function buildApplicationCrumbs() { | |||||
| $crumbs = parent::buildApplicationCrumbs(); | |||||
| $can_create = $this->hasApplicationCapability( | |||||
| PhabricatorSpacesCapabilityCreateSpaces::CAPABILITY); | |||||
| $crumbs->addAction( | |||||
| id(new PHUIListItemView()) | |||||
| ->setName(pht('Create Space')) | |||||
| ->setHref($this->getApplicationURI('create/')) | |||||
| ->setIcon('fa-plus-square') | |||||
| ->setDisabled(!$can_create) | |||||
| ->setWorkflow(!$can_create)); | |||||
| return $crumbs; | |||||
| } | |||||
| } | |||||