Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/nuance/controller/NuanceQueueViewController.php
12262 views
1
<?php
2
3
final class NuanceQueueViewController
4
extends NuanceQueueController {
5
6
public function handleRequest(AphrontRequest $request) {
7
$viewer = $this->getViewer();
8
9
$queue = id(new NuanceQueueQuery())
10
->setViewer($viewer)
11
->withIDs(array($request->getURIData('id')))
12
->executeOne();
13
if (!$queue) {
14
return new Aphront404Response();
15
}
16
17
$title = $queue->getName();
18
19
$crumbs = $this->buildApplicationCrumbs();
20
$crumbs->addTextCrumb(pht('Queues'), $this->getApplicationURI('queue/'));
21
$crumbs->addTextCrumb($queue->getName());
22
$crumbs->setBorder(true);
23
24
$header = $this->buildHeaderView($queue);
25
$curtain = $this->buildCurtain($queue);
26
27
$timeline = $this->buildTransactionTimeline(
28
$queue,
29
new NuanceQueueTransactionQuery());
30
$timeline->setShouldTerminate(true);
31
32
$view = id(new PHUITwoColumnView())
33
->setHeader($header)
34
->setCurtain($curtain)
35
->setMainColumn($timeline);
36
37
return $this->newPage()
38
->setTitle($title)
39
->setCrumbs($crumbs)
40
->appendChild($view);
41
}
42
43
private function buildHeaderView(NuanceQueue $queue) {
44
$viewer = $this->getViewer();
45
46
$header = id(new PHUIHeaderView())
47
->setUser($viewer)
48
->setHeader($queue->getName())
49
->setPolicyObject($queue);
50
51
return $header;
52
}
53
54
private function buildCurtain(NuanceQueue $queue) {
55
$viewer = $this->getViewer();
56
$id = $queue->getID();
57
58
$can_edit = PhabricatorPolicyFilter::hasCapability(
59
$viewer,
60
$queue,
61
PhabricatorPolicyCapability::CAN_EDIT);
62
63
$curtain = $this->newCurtainView($queue);
64
65
$curtain->addAction(
66
id(new PhabricatorActionView())
67
->setName(pht('Edit Queue'))
68
->setIcon('fa-pencil')
69
->setHref($this->getApplicationURI("queue/edit/{$id}/"))
70
->setDisabled(!$can_edit)
71
->setWorkflow(!$can_edit));
72
73
$curtain->addAction(
74
id(new PhabricatorActionView())
75
->setName(pht('Begin Work'))
76
->setIcon('fa-play-circle-o')
77
->setHref($this->getApplicationURI("queue/work/{$id}/"))
78
->setDisabled(!$can_edit)
79
->setWorkflow(!$can_edit));
80
81
return $curtain;
82
}
83
84
}
85
86