@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
fork

Configure Feed

Select the types of activity you want to include in your feed.

Remove "Destroy" action for Countdown objects

Summary: fixes T12523

Test Plan:
- view Countdown edit screen, Destroy action missing
- checked that `./bin/remove destroy <some-countdown-phid>` removes the DB rows as expected

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: Korvin

Maniphest Tasks: T12523

Differential Revision: https://secure.phabricator.com/D17659

+14 -60
+1 -2
src/__phutil_library_map__.php
··· 2408 2408 'PhabricatorCountdownDAO' => 'applications/countdown/storage/PhabricatorCountdownDAO.php', 2409 2409 'PhabricatorCountdownDefaultEditCapability' => 'applications/countdown/capability/PhabricatorCountdownDefaultEditCapability.php', 2410 2410 'PhabricatorCountdownDefaultViewCapability' => 'applications/countdown/capability/PhabricatorCountdownDefaultViewCapability.php', 2411 - 'PhabricatorCountdownDeleteController' => 'applications/countdown/controller/PhabricatorCountdownDeleteController.php', 2412 2411 'PhabricatorCountdownEditController' => 'applications/countdown/controller/PhabricatorCountdownEditController.php', 2413 2412 'PhabricatorCountdownEditEngine' => 'applications/countdown/editor/PhabricatorCountdownEditEngine.php', 2414 2413 'PhabricatorCountdownEditor' => 'applications/countdown/editor/PhabricatorCountdownEditor.php', ··· 7492 7491 'PhabricatorTokenReceiverInterface', 7493 7492 'PhabricatorSpacesInterface', 7494 7493 'PhabricatorProjectInterface', 7494 + 'PhabricatorDestructibleInterface', 7495 7495 ), 7496 7496 'PhabricatorCountdownApplication' => 'PhabricatorApplication', 7497 7497 'PhabricatorCountdownController' => 'PhabricatorController', ··· 7499 7499 'PhabricatorCountdownDAO' => 'PhabricatorLiskDAO', 7500 7500 'PhabricatorCountdownDefaultEditCapability' => 'PhabricatorPolicyCapability', 7501 7501 'PhabricatorCountdownDefaultViewCapability' => 'PhabricatorPolicyCapability', 7502 - 'PhabricatorCountdownDeleteController' => 'PhabricatorCountdownController', 7503 7502 'PhabricatorCountdownEditController' => 'PhabricatorCountdownController', 7504 7503 'PhabricatorCountdownEditEngine' => 'PhabricatorEditEngine', 7505 7504 'PhabricatorCountdownEditor' => 'PhabricatorApplicationTransactionEditor',
-2
src/applications/countdown/application/PhabricatorCountdownApplication.php
··· 48 48 => 'PhabricatorCountdownCommentController', 49 49 $this->getEditRoutePattern('edit/') 50 50 => 'PhabricatorCountdownEditController', 51 - 'delete/(?P<id>[1-9]\d*)/' 52 - => 'PhabricatorCountdownDeleteController', 53 51 ), 54 52 ); 55 53 }
-2
src/applications/countdown/controller/PhabricatorCountdownController.php
··· 6 6 return $this->newApplicationMenu() 7 7 ->setSearchEngine(new PhabricatorCountdownSearchEngine()); 8 8 } 9 - 10 - 11 9 }
-45
src/applications/countdown/controller/PhabricatorCountdownDeleteController.php
··· 1 - <?php 2 - 3 - final class PhabricatorCountdownDeleteController 4 - extends PhabricatorCountdownController { 5 - 6 - public function handleRequest(AphrontRequest $request) { 7 - $viewer = $request->getViewer(); 8 - $id = $request->getURIData('id'); 9 - 10 - $countdown = id(new PhabricatorCountdownQuery()) 11 - ->setViewer($viewer) 12 - ->withIDs(array($id)) 13 - ->requireCapabilities( 14 - array( 15 - PhabricatorPolicyCapability::CAN_VIEW, 16 - PhabricatorPolicyCapability::CAN_EDIT, 17 - )) 18 - ->executeOne(); 19 - 20 - if (!$countdown) { 21 - return new Aphront404Response(); 22 - } 23 - 24 - if ($request->isFormPost()) { 25 - $countdown->delete(); 26 - return id(new AphrontRedirectResponse()) 27 - ->setURI('/countdown/'); 28 - } 29 - 30 - $inst = pht( 31 - 'Are you sure you want to delete the countdown %s?', 32 - $countdown->getTitle()); 33 - 34 - $dialog = new AphrontDialogView(); 35 - $dialog->setUser($request->getUser()); 36 - $dialog->setTitle(pht('Really delete this countdown?')); 37 - $dialog->appendChild(phutil_tag('p', array(), $inst)); 38 - $dialog->addSubmitButton(pht('Delete')); 39 - $dialog->addCancelButton('/countdown/'); 40 - $dialog->setSubmitURI($request->getPath()); 41 - 42 - return id(new AphrontDialogResponse())->setDialog($dialog); 43 - } 44 - 45 - }
-8
src/applications/countdown/controller/PhabricatorCountdownViewController.php
··· 102 102 ->setDisabled(!$can_edit) 103 103 ->setWorkflow(!$can_edit)); 104 104 105 - $curtain->addAction( 106 - id(new PhabricatorActionView()) 107 - ->setIcon('fa-times') 108 - ->setName(pht('Delete Countdown')) 109 - ->setHref($this->getApplicationURI("delete/{$id}/")) 110 - ->setDisabled(!$can_edit) 111 - ->setWorkflow(true)); 112 - 113 105 return $curtain; 114 106 } 115 107
+13 -1
src/applications/countdown/storage/PhabricatorCountdown.php
··· 8 8 PhabricatorApplicationTransactionInterface, 9 9 PhabricatorTokenReceiverInterface, 10 10 PhabricatorSpacesInterface, 11 - PhabricatorProjectInterface { 11 + PhabricatorProjectInterface, 12 + PhabricatorDestructibleInterface { 12 13 13 14 protected $title; 14 15 protected $authorPHID; ··· 141 142 142 143 /* -( PhabricatorSpacesInterface )------------------------------------------- */ 143 144 145 + 144 146 public function getSpacePHID() { 145 147 return $this->spacePHID; 146 148 } 147 149 150 + /* -( PhabricatorDestructibleInterface )----------------------------------- */ 151 + 152 + 153 + public function destroyObjectPermanently( 154 + PhabricatorDestructionEngine $engine) { 155 + 156 + $this->openTransaction(); 157 + $this->delete(); 158 + $this->saveTransaction(); 159 + } 148 160 }