3 final class HarbormasterPlanDisableController
4 extends HarbormasterPlanController
{
6 public function handleRequest(AphrontRequest
$request) {
7 $viewer = $this->getViewer();
9 $plan = id(new HarbormasterBuildPlanQuery())
11 ->withIDs(array($request->getURIData('id')))
12 ->requireCapabilities(
14 PhabricatorPolicyCapability
::CAN_VIEW
,
15 PhabricatorPolicyCapability
::CAN_EDIT
,
19 return new Aphront404Response();
22 $plan_uri = $plan->getURI();
24 if ($request->isFormPost()) {
26 $type_status = HarbormasterBuildPlanStatusTransaction
::TRANSACTIONTYPE
;
28 $v_status = $plan->isDisabled()
29 ? HarbormasterBuildPlan
::STATUS_ACTIVE
30 : HarbormasterBuildPlan
::STATUS_DISABLED
;
34 $xactions[] = id(new HarbormasterBuildPlanTransaction())
35 ->setTransactionType($type_status)
36 ->setNewValue($v_status);
38 $editor = id(new HarbormasterBuildPlanEditor())
40 ->setContinueOnNoEffect(true)
41 ->setContinueOnMissingFields(true)
42 ->setContentSourceFromRequest($request);
44 $editor->applyTransactions($plan, $xactions);
46 return id(new AphrontRedirectResponse())->setURI($plan_uri);
49 if ($plan->isDisabled()) {
50 $title = pht('Enable Build Plan');
51 $body = pht('Enable this build plan?');
52 $button = pht('Enable Plan');
54 $title = pht('Disable Build Plan');
56 'Disable this build plan? It will no longer be executed '.
58 $button = pht('Disable Plan');
61 return $this->newDialog()
64 ->addSubmitButton($button)
65 ->addCancelButton($plan_uri);