Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/almanac/controller/AlmanacNetworkListController.php
12256 views
1
<?php
2
3
final class AlmanacNetworkListController
4
extends AlmanacNetworkController {
5
6
public function shouldAllowPublic() {
7
return true;
8
}
9
10
public function handleRequest(AphrontRequest $request) {
11
$controller = id(new PhabricatorApplicationSearchController())
12
->setQueryKey($request->getURIData('queryKey'))
13
->setSearchEngine(new AlmanacNetworkSearchEngine())
14
->setNavigation($this->buildSideNavView());
15
16
return $this->delegateToController($controller);
17
}
18
19
protected function buildApplicationCrumbs() {
20
$crumbs = parent::buildApplicationCrumbs();
21
22
$can_create = $this->hasApplicationCapability(
23
AlmanacCreateNetworksCapability::CAPABILITY);
24
25
$crumbs->addAction(
26
id(new PHUIListItemView())
27
->setName(pht('Create Network'))
28
->setHref($this->getApplicationURI('network/edit/'))
29
->setIcon('fa-plus-square')
30
->setDisabled(!$can_create)
31
->setWorkflow(!$can_create));
32
33
return $crumbs;
34
}
35
36
public function buildSideNavView() {
37
$viewer = $this->getViewer();
38
39
$nav = new AphrontSideNavFilterView();
40
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
41
42
id(new AlmanacNetworkSearchEngine())
43
->setViewer($viewer)
44
->addNavigationItems($nav->getMenu());
45
46
$nav->selectFilter(null);
47
48
return $nav;
49
}
50
51
52
}
53
54