@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
at recaptime-dev/main 87 lines 2.1 kB view raw
1<?php 2 3final class DrydockAuthorizationListController 4 extends DrydockController { 5 6 private $blueprint; 7 8 public function setBlueprint(DrydockBlueprint $blueprint) { 9 $this->blueprint = $blueprint; 10 return $this; 11 } 12 13 public function getBlueprint() { 14 return $this->blueprint; 15 } 16 17 public function shouldAllowPublic() { 18 return true; 19 } 20 21 public function handleRequest(AphrontRequest $request) { 22 $viewer = $this->getViewer(); 23 24 $engine = new DrydockAuthorizationSearchEngine(); 25 26 $id = $request->getURIData('id'); 27 28 $blueprint = id(new DrydockBlueprintQuery()) 29 ->setViewer($viewer) 30 ->withIDs(array($id)) 31 ->executeOne(); 32 if (!$blueprint) { 33 return new Aphront404Response(); 34 } 35 36 $this->setBlueprint($blueprint); 37 $engine->setBlueprint($blueprint); 38 39 $querykey = $request->getURIData('queryKey'); 40 41 $controller = id(new PhabricatorApplicationSearchController()) 42 ->setQueryKey($querykey) 43 ->setSearchEngine($engine) 44 ->setNavigation($this->buildSideNavView()); 45 46 return $this->delegateToController($controller); 47 } 48 49 public function buildSideNavView() { 50 $nav = new AphrontSideNavFilterView(); 51 $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); 52 53 $engine = id(new DrydockAuthorizationSearchEngine()) 54 ->setViewer($this->getViewer()); 55 56 $engine->setBlueprint($this->getBlueprint()); 57 $engine->addNavigationItems($nav->getMenu()); 58 59 $nav->selectFilter(null); 60 61 return $nav; 62 } 63 64 protected function buildApplicationCrumbs() { 65 $crumbs = parent::buildApplicationCrumbs(); 66 67 $blueprint = $this->getBlueprint(); 68 if ($blueprint) { 69 $id = $blueprint->getID(); 70 71 $crumbs->addTextCrumb( 72 pht('Blueprints'), 73 $this->getApplicationURI('blueprint/')); 74 75 $crumbs->addTextCrumb( 76 $blueprint->getBlueprintName(), 77 $this->getApplicationURI("blueprint/{$id}/")); 78 79 $crumbs->addTextCrumb( 80 pht('Authorizations'), 81 $this->getApplicationURI("blueprint/{$id}/authorizations/")); 82 } 83 84 return $crumbs; 85 } 86 87}