forked from phacility/phabricator
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPhabricatorProfileHeaderView.php
95 lines (83 loc) · 2.54 KB
/
PhabricatorProfileHeaderView.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<?php
/*
* Copyright 2012 Facebook, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
final class PhabricatorProfileHeaderView extends AphrontView {
protected $profilePicture;
protected $profileName;
protected $profileDescription;
protected $profileActions = array();
protected $profileStatus;
public function setProfilePicture($picture) {
$this->profilePicture = $picture;
return $this;
}
public function setName($name) {
$this->profileName = $name;
return $this;
}
public function setDescription($description) {
$this->profileDescription = $description;
return $this;
}
public function addAction($action) {
$this->profileActions[] = $action;
return $this;
}
public function setStatus($status) {
$this->profileStatus = $status;
return $this;
}
public function render() {
require_celerity_resource('phabricator-profile-header-css');
$image = null;
if ($this->profilePicture) {
$image = phutil_render_tag(
'div',
array(
'class' => 'profile-header-picture-frame',
'style' => 'background-image: url('.$this->profilePicture.');',
),
'');
}
$description = phutil_escape_html($this->profileDescription);
if ($this->profileStatus != '') {
$description =
'<strong>'.phutil_escape_html($this->profileStatus).'</strong>'.
($description != '' ? ' — ' : '').
$description;
}
return
'<table class="phabricator-profile-header">
<tr>
<td class="profile-header-name">'.
phutil_escape_html($this->profileName).
'</td>
<td class="profile-header-actions" rowspan="2">'.
self::renderSingleView($this->profileActions).
'</td>
<td class="profile-header-picture" rowspan="2">'.
$image.
'</td>
</tr>
<tr>
<td class="profile-header-description">'.
$description.
'</td>
</tr>
</table>'.
$this->renderChildren();
}
}