@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 151 lines 3.5 kB view raw
1<?php 2 3abstract class DrydockLogController 4 extends DrydockController { 5 6 private $blueprint; 7 private $resource; 8 private $lease; 9 private $operation; 10 11 public function setBlueprint(DrydockBlueprint $blueprint) { 12 $this->blueprint = $blueprint; 13 return $this; 14 } 15 16 public function getBlueprint() { 17 return $this->blueprint; 18 } 19 20 public function setResource(DrydockResource $resource) { 21 $this->resource = $resource; 22 return $this; 23 } 24 25 public function getResource() { 26 return $this->resource; 27 } 28 29 public function setLease(DrydockLease $lease) { 30 $this->lease = $lease; 31 return $this; 32 } 33 34 public function getLease() { 35 return $this->lease; 36 } 37 38 public function setOperation(DrydockRepositoryOperation $operation) { 39 $this->operation = $operation; 40 return $this; 41 } 42 43 public function getOperation() { 44 return $this->operation; 45 } 46 47 public function buildSideNavView() { 48 $nav = new AphrontSideNavFilterView(); 49 $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); 50 51 $engine = id(new DrydockLogSearchEngine()) 52 ->setViewer($this->getRequest()->getUser()); 53 54 $blueprint = $this->getBlueprint(); 55 if ($blueprint) { 56 $engine->setBlueprint($blueprint); 57 } 58 59 $resource = $this->getResource(); 60 if ($resource) { 61 $engine->setResource($resource); 62 } 63 64 $lease = $this->getLease(); 65 if ($lease) { 66 $engine->setLease($lease); 67 } 68 69 $operation = $this->getOperation(); 70 if ($operation) { 71 $engine->setOperation($operation); 72 } 73 74 $engine->addNavigationItems($nav->getMenu()); 75 76 $nav->selectFilter(null); 77 78 return $nav; 79 } 80 81 protected function buildApplicationCrumbs() { 82 $crumbs = parent::buildApplicationCrumbs(); 83 84 $viewer = $this->getViewer(); 85 86 $blueprint = $this->getBlueprint(); 87 $resource = $this->getResource(); 88 $lease = $this->getLease(); 89 $operation = $this->getOperation(); 90 if ($blueprint) { 91 $id = $blueprint->getID(); 92 93 $crumbs->addTextCrumb( 94 pht('Blueprints'), 95 $this->getApplicationURI('blueprint/')); 96 97 $crumbs->addTextCrumb( 98 $blueprint->getBlueprintName(), 99 $this->getApplicationURI("blueprint/{$id}/")); 100 101 $crumbs->addTextCrumb( 102 pht('Logs'), 103 $this->getApplicationURI("blueprint/{$id}/logs/")); 104 } else if ($resource) { 105 $id = $resource->getID(); 106 107 $crumbs->addTextCrumb( 108 pht('Resources'), 109 $this->getApplicationURI('resource/')); 110 111 $crumbs->addTextCrumb( 112 $resource->getResourceName(), 113 $this->getApplicationURI("resource/{$id}/")); 114 115 $crumbs->addTextCrumb( 116 pht('Logs'), 117 $this->getApplicationURI("resource/{$id}/logs/")); 118 } else if ($lease) { 119 $id = $lease->getID(); 120 121 $crumbs->addTextCrumb( 122 pht('Leases'), 123 $this->getApplicationURI('lease/')); 124 125 $crumbs->addTextCrumb( 126 $lease->getLeaseName(), 127 $this->getApplicationURI("lease/{$id}/")); 128 129 $crumbs->addTextCrumb( 130 pht('Logs'), 131 $this->getApplicationURI("lease/{$id}/logs/")); 132 } else if ($operation) { 133 $id = $operation->getID(); 134 135 $crumbs->addTextCrumb( 136 pht('Operations'), 137 $this->getApplicationURI('operation/')); 138 139 $crumbs->addTextCrumb( 140 pht('Repository Operation %d', $id), 141 $this->getApplicationURI("operation/{$id}/")); 142 143 $crumbs->addTextCrumb( 144 pht('Logs'), 145 $this->getApplicationURI("operation/{$id}/logs/")); 146 } 147 148 return $crumbs; 149 } 150 151}