Remove all "FileHasObject" edge reads and writes
[phabricator.git] / src / applications / harbormaster / controller / HarbormasterPlanDisableController.php
blob65a993396d2a64d17f84a019cc3974653094c869
1 <?php
3 final class HarbormasterPlanDisableController
4 extends HarbormasterPlanController {
6 public function handleRequest(AphrontRequest $request) {
7 $viewer = $this->getViewer();
9 $plan = id(new HarbormasterBuildPlanQuery())
10 ->setViewer($viewer)
11 ->withIDs(array($request->getURIData('id')))
12 ->requireCapabilities(
13 array(
14 PhabricatorPolicyCapability::CAN_VIEW,
15 PhabricatorPolicyCapability::CAN_EDIT,
17 ->executeOne();
18 if (!$plan) {
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;
32 $xactions = array();
34 $xactions[] = id(new HarbormasterBuildPlanTransaction())
35 ->setTransactionType($type_status)
36 ->setNewValue($v_status);
38 $editor = id(new HarbormasterBuildPlanEditor())
39 ->setActor($viewer)
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');
53 } else {
54 $title = pht('Disable Build Plan');
55 $body = pht(
56 'Disable this build plan? It will no longer be executed '.
57 'automatically.');
58 $button = pht('Disable Plan');
61 return $this->newDialog()
62 ->setTitle($title)
63 ->appendChild($body)
64 ->addSubmitButton($button)
65 ->addCancelButton($plan_uri);