@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
1<?php
2
3final class PhabricatorEditEngineConfigurationDisableController
4 extends PhabricatorEditEngineController {
5
6 public function handleRequest(AphrontRequest $request) {
7 $viewer = $this->getViewer();
8
9 $config = $this->loadConfigForEdit();
10 if (!$config) {
11 return id(new Aphront404Response());
12 }
13
14 $engine_key = $config->getEngineKey();
15 $key = $config->getIdentifier();
16 $cancel_uri = "/transactions/editengine/{$engine_key}/view/{$key}/";
17
18 $type = PhabricatorEditEngineDisableTransaction::TRANSACTIONTYPE;
19
20 if ($request->isFormPost()) {
21 $xactions = array();
22
23 $xactions[] = id(new PhabricatorEditEngineConfigurationTransaction())
24 ->setTransactionType($type)
25 ->setNewValue(!$config->getIsDisabled());
26
27 $editor = id(new PhabricatorEditEngineConfigurationEditor())
28 ->setActor($viewer)
29 ->setContentSourceFromRequest($request)
30 ->setContinueOnMissingFields(true)
31 ->setContinueOnNoEffect(true);
32
33 $editor->applyTransactions($config, $xactions);
34
35 return id(new AphrontRedirectResponse())
36 ->setURI($cancel_uri);
37 }
38
39 if ($config->getIsDisabled()) {
40 $title = pht('Enable Form');
41 $body = pht(
42 'Enable this form? Users who can see it will be able to use it to '.
43 'create objects.');
44 $button = pht('Enable Form');
45 } else {
46 $title = pht('Disable Form');
47 $body = pht(
48 'Disable this form? Users will no longer be able to use it.');
49 $button = pht('Disable Form');
50 }
51
52 return $this->newDialog()
53 ->setTitle($title)
54 ->appendParagraph($body)
55 ->addSubmitButton($button)
56 ->addCancelbutton($cancel_uri);
57 }
58
59}