Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/diffusion/view/DiffusionPullLogListView.php
12242 views
1
<?php
2
3
final class DiffusionPullLogListView extends AphrontView {
4
5
private $logs;
6
7
public function setLogs(array $logs) {
8
assert_instances_of($logs, 'PhabricatorRepositoryPullEvent');
9
$this->logs = $logs;
10
return $this;
11
}
12
13
public function render() {
14
$events = $this->logs;
15
$viewer = $this->getViewer();
16
17
$handle_phids = array();
18
foreach ($events as $event) {
19
if ($event->getPullerPHID()) {
20
$handle_phids[] = $event->getPullerPHID();
21
}
22
}
23
$handles = $viewer->loadHandles($handle_phids);
24
25
// Only administrators can view remote addresses.
26
$remotes_visible = $viewer->getIsAdmin();
27
28
$rows = array();
29
foreach ($events as $event) {
30
if ($event->getRepositoryPHID()) {
31
$repository = $event->getRepository();
32
} else {
33
$repository = null;
34
}
35
36
if ($remotes_visible) {
37
$remote_address = $event->getRemoteAddress();
38
} else {
39
$remote_address = null;
40
}
41
42
$event_id = $event->getID();
43
44
$repository_link = null;
45
if ($repository) {
46
$repository_link = phutil_tag(
47
'a',
48
array(
49
'href' => $repository->getURI(),
50
),
51
$repository->getDisplayName());
52
}
53
54
$puller_link = null;
55
if ($event->getPullerPHID()) {
56
$puller_link = $viewer->renderHandle($event->getPullerPHID());
57
}
58
59
$rows[] = array(
60
$event_id,
61
$repository_link,
62
$puller_link,
63
$remote_address,
64
$event->getRemoteProtocolDisplayName(),
65
$event->newResultIcon(),
66
$event->getResultCode(),
67
phabricator_datetime($event->getEpoch(), $viewer),
68
);
69
}
70
71
$table = id(new AphrontTableView($rows))
72
->setHeaders(
73
array(
74
pht('Pull'),
75
pht('Repository'),
76
pht('Puller'),
77
pht('From'),
78
pht('Via'),
79
null,
80
pht('Code'),
81
pht('Date'),
82
))
83
->setColumnClasses(
84
array(
85
'n',
86
'',
87
'',
88
'n',
89
'wide',
90
'',
91
'n',
92
'right',
93
))
94
->setColumnVisibility(
95
array(
96
true,
97
true,
98
true,
99
$remotes_visible,
100
));
101
102
return $table;
103
}
104
105
}
106
107