Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/harbormaster/view/HarbormasterBuildView.php
12256 views
1
<?php
2
3
final class HarbormasterBuildView
4
extends AphrontView {
5
6
private $builds = array();
7
8
public function setBuilds(array $builds) {
9
assert_instances_of($builds, 'HarbormasterBuild');
10
$this->builds = $builds;
11
return $this;
12
}
13
14
public function getBuilds() {
15
return $this->builds;
16
}
17
18
public function render() {
19
return $this->newObjectList();
20
}
21
22
public function newObjectList() {
23
$viewer = $this->getViewer();
24
$builds = $this->getBuilds();
25
26
$buildables = mpull($builds, 'getBuildable');
27
$object_phids = mpull($buildables, 'getBuildablePHID');
28
$initiator_phids = mpull($builds, 'getInitiatorPHID');
29
$phids = array_mergev(array($initiator_phids, $object_phids));
30
$phids = array_unique(array_filter($phids));
31
32
$handles = $viewer->loadHandles($phids);
33
34
$list = new PHUIObjectItemListView();
35
foreach ($builds as $build) {
36
$id = $build->getID();
37
38
$buildable_object = $handles[$build->getBuildable()->getBuildablePHID()];
39
40
$item = id(new PHUIObjectItemView())
41
->setViewer($viewer)
42
->setObject($build)
43
->setObjectName($build->getObjectName())
44
->setHeader($build->getName())
45
->setHref($build->getURI())
46
->setEpoch($build->getDateCreated())
47
->addAttribute($buildable_object->getName());
48
49
$initiator_phid = $build->getInitiatorPHID();
50
if ($initiator_phid) {
51
$initiator = $handles[$initiator_phid];
52
$item->addByline($initiator->renderLink());
53
}
54
55
$status = $build->getBuildStatus();
56
57
$status_icon = HarbormasterBuildStatus::getBuildStatusIcon($status);
58
$status_color = HarbormasterBuildStatus::getBuildStatusColor($status);
59
$status_label = HarbormasterBuildStatus::getBuildStatusName($status);
60
61
$item->setStatusIcon("{$status_icon} {$status_color}", $status_label);
62
63
$list->addItem($item);
64
}
65
66
return $list;
67
}
68
69
}
70
71