@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at recaptime-dev/main 56 lines 1.6 kB view raw
1<?php 2 3final 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}