Remove product literal strings in "pht()", part 6
[phabricator.git] / src / applications / harbormaster / controller / HarbormasterBuildActionController.php
blob0156e485f1f3316bd014566299f404face077bf9
1 <?php
3 final class HarbormasterBuildActionController
4 extends HarbormasterController {
6 public function handleRequest(AphrontRequest $request) {
7 $viewer = $this->getViewer();
8 $id = $request->getURIData('id');
9 $action = $request->getURIData('action');
10 $via = $request->getURIData('via');
12 $build = id(new HarbormasterBuildQuery())
13 ->setViewer($viewer)
14 ->withIDs(array($id))
15 ->requireCapabilities(
16 array(
17 PhabricatorPolicyCapability::CAN_VIEW,
18 PhabricatorPolicyCapability::CAN_EDIT,
20 ->executeOne();
21 if (!$build) {
22 return new Aphront404Response();
25 $xaction =
26 HarbormasterBuildMessageTransaction::getTransactionObjectForMessageType(
27 $action);
29 if (!$xaction) {
30 return new Aphront404Response();
33 switch ($via) {
34 case 'buildable':
35 $return_uri = '/'.$build->getBuildable()->getMonogram();
36 break;
37 default:
38 $return_uri = $this->getApplicationURI('/build/'.$build->getID().'/');
39 break;
42 try {
43 $xaction->assertCanSendMessage($viewer, $build);
44 } catch (HarbormasterMessageException $ex) {
45 return $this->newDialog()
46 ->setTitle($ex->getTitle())
47 ->appendChild($ex->getBody())
48 ->addCancelButton($return_uri);
51 if ($request->isDialogFormPost()) {
52 $build->sendMessage($viewer, $xaction->getHarbormasterBuildMessageType());
53 return id(new AphrontRedirectResponse())->setURI($return_uri);
56 $title = $xaction->newConfirmPromptTitle();
57 $body = $xaction->newConfirmPromptBody();
58 $submit = $xaction->getHarbormasterBuildMessageName();
60 return $this->newDialog()
61 ->setTitle($title)
62 ->appendChild($body)
63 ->addCancelButton($return_uri)
64 ->addSubmitButton($submit);