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