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; | |||||
} | |||||
} |