Correct Aphlict websocket URI construction after PHP8 compatibility changes
[phabricator.git] / src / applications / drydock / controller / DrydockRepositoryOperationDismissController.php
blobeb0fb5bb4be39b4216eeaf972d65c10d23a91a4a
1 <?php
3 final class DrydockRepositoryOperationDismissController
4 extends DrydockRepositoryOperationController {
6 public function handleRequest(AphrontRequest $request) {
7 $viewer = $request->getViewer();
8 $id = $request->getURIData('id');
10 $operation = id(new DrydockRepositoryOperationQuery())
11 ->setViewer($viewer)
12 ->withIDs(array($id))
13 ->requireCapabilities(
14 array(
15 PhabricatorPolicyCapability::CAN_VIEW,
16 PhabricatorPolicyCapability::CAN_EDIT,
18 ->executeOne();
19 if (!$operation) {
20 return new Aphront404Response();
23 $object_phid = $operation->getObjectPHID();
24 $handles = $viewer->loadHandles(array($object_phid));
25 $done_uri = $handles[$object_phid]->getURI();
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);
38 if ($request->isFormPost()) {
39 $operation
40 ->setIsDismissed(1)
41 ->save();
43 return id(new AphrontRedirectResponse())->setURI($done_uri);
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);