Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/daemon/controller/PhabricatorDaemonBulkJobViewController.php
12256 views
1
<?php
2
3
final class PhabricatorDaemonBulkJobViewController
4
extends PhabricatorDaemonBulkJobController {
5
6
public function handleRequest(AphrontRequest $request) {
7
$viewer = $this->getViewer();
8
9
$job = id(new PhabricatorWorkerBulkJobQuery())
10
->setViewer($viewer)
11
->withIDs(array($request->getURIData('id')))
12
->executeOne();
13
if (!$job) {
14
return new Aphront404Response();
15
}
16
17
$title = pht('Bulk Job %d', $job->getID());
18
19
$crumbs = $this->buildApplicationCrumbs();
20
$crumbs->addTextCrumb($title);
21
$crumbs->setBorder(true);
22
23
$properties = $this->renderProperties($job);
24
$curtain = $this->buildCurtainView($job);
25
26
$box = id(new PHUIObjectBoxView())
27
->setHeaderText(pht('Details'))
28
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
29
->addPropertyList($properties);
30
31
$timeline = $this->buildTransactionTimeline(
32
$job,
33
new PhabricatorWorkerBulkJobTransactionQuery());
34
$timeline->setShouldTerminate(true);
35
36
$header = id(new PHUIHeaderView())
37
->setHeader($title)
38
->setHeaderIcon('fa-hourglass');
39
40
$view = id(new PHUITwoColumnView())
41
->setHeader($header)
42
->setCurtain($curtain)
43
->setMainColumn(array(
44
$box,
45
$timeline,
46
));
47
48
return $this->newPage()
49
->setTitle($title)
50
->setCrumbs($crumbs)
51
->appendChild($view);
52
}
53
54
private function renderProperties(PhabricatorWorkerBulkJob $job) {
55
$viewer = $this->getViewer();
56
57
$view = id(new PHUIPropertyListView())
58
->setUser($viewer)
59
->setObject($job);
60
61
$view->addProperty(
62
pht('Author'),
63
$viewer->renderHandle($job->getAuthorPHID()));
64
65
$view->addProperty(pht('Status'), $job->getStatusName());
66
67
return $view;
68
}
69
70
private function buildCurtainView(PhabricatorWorkerBulkJob $job) {
71
$viewer = $this->getViewer();
72
$curtain = $this->newCurtainView($job);
73
74
foreach ($job->getCurtainActions($viewer) as $action) {
75
$curtain->addAction($action);
76
}
77
78
return $curtain;
79
}
80
81
}
82
83