Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/dashboard/menuitem/PhabricatorDashboardPortalMenuItem.php
13473 views
1
<?php
2
3
final class PhabricatorDashboardPortalMenuItem
4
extends PhabricatorProfileMenuItem {
5
6
const MENUITEMKEY = 'portal';
7
8
public function getMenuItemTypeIcon() {
9
return 'fa-pencil';
10
}
11
12
public function getDefaultName() {
13
return pht('Manage Portal');
14
}
15
16
public function getMenuItemTypeName() {
17
return pht('Manage Portal');
18
}
19
20
public function canHideMenuItem(
21
PhabricatorProfileMenuItemConfiguration $config) {
22
return false;
23
}
24
25
public function canMakeDefault(
26
PhabricatorProfileMenuItemConfiguration $config) {
27
return false;
28
}
29
30
public function getDisplayName(
31
PhabricatorProfileMenuItemConfiguration $config) {
32
$name = $config->getMenuItemProperty('name');
33
34
if (strlen($name)) {
35
return $name;
36
}
37
38
return $this->getDefaultName();
39
}
40
41
public function buildEditEngineFields(
42
PhabricatorProfileMenuItemConfiguration $config) {
43
return array(
44
id(new PhabricatorTextEditField())
45
->setKey('name')
46
->setLabel(pht('Name'))
47
->setPlaceholder($this->getDefaultName())
48
->setValue($config->getMenuItemProperty('name')),
49
);
50
}
51
52
protected function newMenuItemViewList(
53
PhabricatorProfileMenuItemConfiguration $config) {
54
$viewer = $this->getViewer();
55
56
if (!$viewer->isLoggedIn()) {
57
return array();
58
}
59
60
$uri = $this->getItemViewURI($config);
61
$name = $this->getDisplayName($config);
62
$icon = 'fa-pencil';
63
64
$item = $this->newItemView()
65
->setURI($uri)
66
->setName($name)
67
->setIcon($icon);
68
69
return array(
70
$item,
71
);
72
}
73
74
public function newPageContent(
75
PhabricatorProfileMenuItemConfiguration $config) {
76
$viewer = $this->getViewer();
77
$engine = $this->getEngine();
78
$portal = $engine->getProfileObject();
79
$controller = $engine->getController();
80
81
$header = id(new PHUIHeaderView())
82
->setHeader(pht('Manage Portal'));
83
84
$edit_uri = urisprintf(
85
'/portal/edit/%d/',
86
$portal->getID());
87
88
$can_edit = PhabricatorPolicyFilter::hasCapability(
89
$viewer,
90
$portal,
91
PhabricatorPolicyCapability::CAN_EDIT);
92
93
$curtain = $controller->newCurtainView($portal)
94
->addAction(
95
id(new PhabricatorActionView())
96
->setName(pht('Edit Portal'))
97
->setIcon('fa-pencil')
98
->setDisabled(!$can_edit)
99
->setWorkflow(!$can_edit)
100
->setHref($edit_uri));
101
102
$timeline = $controller->newTimelineView()
103
->setShouldTerminate(true);
104
105
$view = id(new PHUITwoColumnView())
106
->setHeader($header)
107
->setCurtain($curtain)
108
->setMainColumn(
109
array(
110
$timeline,
111
));
112
113
return $view;
114
}
115
116
117
}
118
119