Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/diffusion/view/DiffusionSyncLogListView.php
12242 views
1
<?php
2
3
final class DiffusionSyncLogListView extends AphrontView {
4
5
private $logs;
6
7
public function setLogs(array $logs) {
8
assert_instances_of($logs, 'PhabricatorRepositorySyncEvent');
9
$this->logs = $logs;
10
return $this;
11
}
12
13
public function render() {
14
$events = $this->logs;
15
$viewer = $this->getViewer();
16
17
$rows = array();
18
foreach ($events as $event) {
19
$repository = $event->getRepository();
20
$repository_link = phutil_tag(
21
'a',
22
array(
23
'href' => $repository->getURI(),
24
),
25
$repository->getDisplayName());
26
27
$event_id = $event->getID();
28
29
$sync_wait = pht('%sus', new PhutilNumber($event->getSyncWait()));
30
31
$device_link = $viewer->renderHandle($event->getDevicePHID());
32
$from_device_link = $viewer->renderHandle($event->getFromDevicePHID());
33
34
$rows[] = array(
35
$event_id,
36
$repository_link,
37
$device_link,
38
$from_device_link,
39
$event->getDeviceVersion(),
40
$event->getFromDeviceVersion(),
41
$event->getResultType(),
42
$event->getResultCode(),
43
phabricator_datetime($event->getEpoch(), $viewer),
44
$sync_wait,
45
);
46
}
47
48
$table = id(new AphrontTableView($rows))
49
->setHeaders(
50
array(
51
pht('Sync'),
52
pht('Repository'),
53
pht('Device'),
54
pht('From Device'),
55
pht('Version'),
56
pht('From Version'),
57
pht('Result'),
58
pht('Code'),
59
pht('Date'),
60
pht('Sync Wait'),
61
))
62
->setColumnClasses(
63
array(
64
'n',
65
'',
66
'',
67
'',
68
'n',
69
'n',
70
'wide right',
71
'n',
72
'right',
73
'n right',
74
));
75
76
return $table;
77
}
78
79
}
80
81