@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class FundInitiativeListController
4 extends FundController {
5
6 public function shouldAllowPublic() {
7 return true;
8 }
9
10 public function handleRequest(AphrontRequest $request) {
11 $querykey = $request->getURIData('queryKey');
12
13 $controller = id(new PhabricatorApplicationSearchController())
14 ->setQueryKey($querykey)
15 ->setSearchEngine(new FundInitiativeSearchEngine())
16 ->setNavigation($this->buildSideNavView());
17
18 return $this->delegateToController($controller);
19 }
20
21 public function buildSideNavView() {
22 $viewer = $this->getViewer();
23
24 $nav = new AphrontSideNavFilterView();
25 $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
26
27 id(new FundInitiativeSearchEngine())
28 ->setViewer($viewer)
29 ->addNavigationItems($nav->getMenu());
30
31 $nav->addLabel(pht('Backers'));
32 $nav->addFilter('backers/', pht('Find Backers'));
33
34 $nav->selectFilter(null);
35
36 return $nav;
37 }
38
39 protected function buildApplicationCrumbs() {
40 $crumbs = parent::buildApplicationCrumbs();
41
42 $can_create = $this->hasApplicationCapability(
43 FundCreateInitiativesCapability::CAPABILITY);
44
45 $crumbs->addAction(
46 id(new PHUIListItemView())
47 ->setName(pht('Create Initiative'))
48 ->setHref($this->getApplicationURI('create/'))
49 ->setIcon('fa-plus-square')
50 ->setDisabled(!$can_create)
51 ->setWorkflow(!$can_create));
52
53 return $crumbs;
54 }
55
56}