@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
3abstract class DrydockLeaseController
4 extends DrydockController {
5
6 private $resource;
7
8 public function setResource($resource) {
9 $this->resource = $resource;
10 return $this;
11 }
12
13 public function getResource() {
14 return $this->resource;
15 }
16
17 public function buildSideNavView() {
18 $nav = new AphrontSideNavFilterView();
19 $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
20
21 $engine = id(new DrydockLeaseSearchEngine())
22 ->setViewer($this->getRequest()->getUser());
23
24 if ($this->getResource()) {
25 $engine->setResource($this->getResource());
26 }
27
28 $engine->addNavigationItems($nav->getMenu());
29
30 $nav->selectFilter(null);
31
32 return $nav;
33 }
34
35 protected function buildApplicationCrumbs() {
36 $crumbs = parent::buildApplicationCrumbs();
37
38 $resource = $this->getResource();
39 if ($resource) {
40 $id = $resource->getID();
41
42 $crumbs->addTextCrumb(
43 pht('Resources'),
44 $this->getApplicationURI('resource/'));
45
46 $crumbs->addTextCrumb(
47 $resource->getResourceName(),
48 $this->getApplicationURI("resource/{$id}/"));
49
50 $crumbs->addTextCrumb(
51 pht('Leases'),
52 $this->getApplicationURI("resource/{$id}/leases/"));
53
54 } else {
55 $crumbs->addTextCrumb(
56 pht('Leases'),
57 $this->getApplicationURI('lease/'));
58 }
59 return $crumbs;
60 }
61
62}