Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/view/fuel/FuelMenuItemView.php
12249 views
1
<?php
2
3
final class FuelMenuItemView
4
extends FuelView {
5
6
private $name;
7
private $uri;
8
private $icon;
9
private $disabled;
10
private $backgroundColor;
11
12
public function setURI($uri) {
13
$this->uri = $uri;
14
return $this;
15
}
16
17
public function getURI() {
18
return $this->uri;
19
}
20
21
public function setName($name) {
22
$this->name = $name;
23
return $this;
24
}
25
26
public function getName() {
27
return $this->name;
28
}
29
30
public function setIcon(PHUIIconView $icon) {
31
$this->icon = $icon;
32
return $this;
33
}
34
35
public function getIcon() {
36
return $this->icon;
37
}
38
39
public function newIcon() {
40
$icon = new PHUIIconView();
41
$this->setIcon($icon);
42
return $icon;
43
}
44
45
public function setDisabled($disabled) {
46
$this->disabled = $disabled;
47
return $this;
48
}
49
50
public function getDisabled() {
51
return $this->disabled;
52
}
53
54
public function setBackgroundColor($background_color) {
55
$this->backgroundColor = $background_color;
56
return $this;
57
}
58
59
public function getBackgroundColor() {
60
return $this->backgroundColor;
61
}
62
63
public function render() {
64
$icon = $this->getIcon();
65
66
$name = $this->getName();
67
$uri = $this->getURI();
68
69
$icon = phutil_tag(
70
'span',
71
array(
72
'class' => 'fuel-menu-item-icon',
73
),
74
$icon);
75
76
$item_link = phutil_tag(
77
'a',
78
array(
79
'href' => $uri,
80
'class' => 'fuel-menu-item-link',
81
),
82
array(
83
$icon,
84
$name,
85
));
86
87
$classes = array();
88
$classes[] = 'fuel-menu-item';
89
90
if ($this->getDisabled()) {
91
$classes[] = 'disabled';
92
}
93
94
$background_color = $this->getBackgroundColor();
95
if ($background_color !== null) {
96
$classes[] = 'fuel-menu-item-background-color-'.$background_color;
97
}
98
99
100
if ($uri !== null) {
101
$classes[] = 'has-link';
102
}
103
104
$classes = implode(' ', $classes);
105
106
return phutil_tag(
107
'div',
108
array(
109
'class' => $classes,
110
),
111
$item_link);
112
}
113
114
}
115
116