Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/drydock/controller/DrydockRepositoryOperationDismissController.php
12256 views
1
<?php
2
3
final class DrydockRepositoryOperationDismissController
4
extends DrydockRepositoryOperationController {
5
6
public function handleRequest(AphrontRequest $request) {
7
$viewer = $request->getViewer();
8
$id = $request->getURIData('id');
9
10
$operation = id(new DrydockRepositoryOperationQuery())
11
->setViewer($viewer)
12
->withIDs(array($id))
13
->requireCapabilities(
14
array(
15
PhabricatorPolicyCapability::CAN_VIEW,
16
PhabricatorPolicyCapability::CAN_EDIT,
17
))
18
->executeOne();
19
if (!$operation) {
20
return new Aphront404Response();
21
}
22
23
$object_phid = $operation->getObjectPHID();
24
$handles = $viewer->loadHandles(array($object_phid));
25
$done_uri = $handles[$object_phid]->getURI();
26
27
if ($operation->getIsDismissed()) {
28
return $this->newDialog()
29
->setTitle(pht('Already Dismissed'))
30
->appendParagraph(
31
pht(
32
'This operation has already been dismissed, and can not be '.
33
'dismissed any further.'))
34
->addCancelButton($done_uri);
35
}
36
37
38
if ($request->isFormPost()) {
39
$operation
40
->setIsDismissed(1)
41
->save();
42
43
return id(new AphrontRedirectResponse())->setURI($done_uri);
44
}
45
46
return $this->newDialog()
47
->setTitle(pht('Dismiss Operation'))
48
->appendParagraph(
49
pht(
50
'Dismiss this operation? It will no longer be shown, but logs '.
51
'can be found in Drydock.'))
52
->addSubmitButton(pht('Dismiss'))
53
->addCancelButton($done_uri);
54
}
55
56
}
57
58