Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/drydock/controller/DrydockConsoleController.php
12262 views
1
<?php
2
3
final 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
}
92
93