Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/harbormaster/controller/HarbormasterPlanDisableController.php
12256 views
1
<?php
2
3
final class HarbormasterPlanDisableController
4
extends HarbormasterPlanController {
5
6
public function handleRequest(AphrontRequest $request) {
7
$viewer = $this->getViewer();
8
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,
16
))
17
->executeOne();
18
if (!$plan) {
19
return new Aphront404Response();
20
}
21
22
$plan_uri = $plan->getURI();
23
24
if ($request->isFormPost()) {
25
26
$type_status = HarbormasterBuildPlanStatusTransaction::TRANSACTIONTYPE;
27
28
$v_status = $plan->isDisabled()
29
? HarbormasterBuildPlan::STATUS_ACTIVE
30
: HarbormasterBuildPlan::STATUS_DISABLED;
31
32
$xactions = array();
33
34
$xactions[] = id(new HarbormasterBuildPlanTransaction())
35
->setTransactionType($type_status)
36
->setNewValue($v_status);
37
38
$editor = id(new HarbormasterBuildPlanEditor())
39
->setActor($viewer)
40
->setContinueOnNoEffect(true)
41
->setContinueOnMissingFields(true)
42
->setContentSourceFromRequest($request);
43
44
$editor->applyTransactions($plan, $xactions);
45
46
return id(new AphrontRedirectResponse())->setURI($plan_uri);
47
}
48
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');
59
}
60
61
return $this->newDialog()
62
->setTitle($title)
63
->appendChild($body)
64
->addSubmitButton($button)
65
->addCancelButton($plan_uri);
66
}
67
68
}
69
70