@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 upstream/main 91 lines 2.6 kB view raw
1<?php 2 3final class DrydockConsoleController extends DrydockController { 4 5 public function shouldAllowPublic() { 6 return true; 7 } 8 9 public function buildSideNavView() { 10 $nav = new AphrontSideNavFilterView(); 11 $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); 12 13 // These are only used on mobile. 14 15 $nav->addFilter('blueprint', pht('Blueprints')); 16 $nav->addFilter('resource', pht('Resources')); 17 $nav->addFilter('lease', pht('Leases')); 18 $nav->addFilter('operation', pht('Repository Operations')); 19 20 $nav->selectFilter(null); 21 22 return $nav; 23 } 24 25 public function handleRequest(AphrontRequest $request) { 26 $viewer = $request->getViewer(); 27 28 $menu = id(new PHUIObjectItemListView()) 29 ->setUser($viewer) 30 ->setBig(true); 31 32 $menu->addItem( 33 id(new PHUIObjectItemView()) 34 ->setHeader(pht('Blueprints')) 35 ->setImageIcon('fa-map-o') 36 ->setHref($this->getApplicationURI('blueprint/')) 37 ->setClickable(true) 38 ->addAttribute( 39 pht( 40 'Configure blueprints so Drydock can build resources, like '. 41 'hosts and working copies.'))); 42 43 $menu->addItem( 44 id(new PHUIObjectItemView()) 45 ->setHeader(pht('Resources')) 46 ->setImageIcon('fa-map') 47 ->setHref($this->getApplicationURI('resource/')) 48 ->setClickable(true) 49 ->addAttribute( 50 pht('View and manage resources Drydock has built, like hosts.'))); 51 52 $menu->addItem( 53 id(new PHUIObjectItemView()) 54 ->setHeader(pht('Leases')) 55 ->setImageIcon('fa-link') 56 ->setHref($this->getApplicationURI('lease/')) 57 ->setClickable(true) 58 ->addAttribute(pht('Manage leases on resources.'))); 59 60 $menu->addItem( 61 id(new PHUIObjectItemView()) 62 ->setHeader(pht('Repository Operations')) 63 ->setImageIcon('fa-fighter-jet') 64 ->setHref($this->getApplicationURI('operation/')) 65 ->setClickable(true) 66 ->addAttribute(pht('Review the repository operation queue.'))); 67 68 $crumbs = $this->buildApplicationCrumbs(); 69 $crumbs->addTextCrumb(pht('Console')); 70 $crumbs->setBorder(true); 71 72 $title = pht('Drydock Console'); 73 74 $box = id(new PHUIObjectBoxView()) 75 ->setHeaderText($title) 76 ->setBackground(PHUIObjectBoxView::WHITE_CONFIG) 77 ->setObjectList($menu); 78 79 $launcher_view = id(new PHUILauncherView()) 80 ->appendChild($box); 81 82 $view = id(new PHUITwoColumnView()) 83 ->setFooter($launcher_view); 84 85 return $this->newPage() 86 ->setTitle($title) 87 ->setCrumbs($crumbs) 88 ->appendChild($view); 89 } 90 91}