Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/differential/customfield/DifferentialProjectReviewersField.php
12256 views
1
<?php
2
3
final class DifferentialProjectReviewersField
4
extends DifferentialCustomField {
5
6
public function getFieldKey() {
7
return 'differential:project-reviewers';
8
}
9
10
public function getFieldName() {
11
return pht('Group Reviewers');
12
}
13
14
public function getFieldDescription() {
15
return pht('Display project reviewers.');
16
}
17
18
public function shouldAppearInPropertyView() {
19
return true;
20
}
21
22
public function canDisableField() {
23
return false;
24
}
25
26
public function renderPropertyViewLabel() {
27
return $this->getFieldName();
28
}
29
30
public function getRequiredHandlePHIDsForPropertyView() {
31
return mpull($this->getProjectReviewers(), 'getReviewerPHID');
32
}
33
34
public function renderPropertyViewValue(array $handles) {
35
$reviewers = $this->getProjectReviewers();
36
if (!$reviewers) {
37
return null;
38
}
39
40
$view = id(new DifferentialReviewersView())
41
->setUser($this->getViewer())
42
->setReviewers($reviewers)
43
->setHandles($handles);
44
45
$diff = $this->getActiveDiff();
46
if ($diff) {
47
$view->setActiveDiff($diff);
48
}
49
50
return $view;
51
}
52
53
private function getProjectReviewers() {
54
$reviewers = array();
55
foreach ($this->getObject()->getReviewers() as $reviewer) {
56
if (!$reviewer->isUser()) {
57
$reviewers[] = $reviewer;
58
}
59
}
60
return $reviewers;
61
}
62
63
}
64
65