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

Move "Delete Repository" stuff to Diffusion

Summary: Ref T2231. This just moves the "Delete" dialog from Repositories to Diffusion. This dialog just shows instructions and isn't interesting.

Test Plan: {F75093}

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T2231

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

+69 -70
+2 -4
src/__phutil_library_map__.php
··· 509 509 'DiffusionRepositoryEditBasicController' => 'applications/diffusion/controller/DiffusionRepositoryEditBasicController.php', 510 510 'DiffusionRepositoryEditBranchesController' => 'applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php', 511 511 'DiffusionRepositoryEditController' => 'applications/diffusion/controller/DiffusionRepositoryEditController.php', 512 + 'DiffusionRepositoryEditDeleteController' => 'applications/diffusion/controller/DiffusionRepositoryEditDeleteControler.php', 512 513 'DiffusionRepositoryEditEncodingController' => 'applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php', 513 514 'DiffusionRepositoryEditLocalController' => 'applications/diffusion/controller/DiffusionRepositoryEditLocalController.php', 514 515 'DiffusionRepositoryEditMainController' => 'applications/diffusion/controller/DiffusionRepositoryEditMainController.php', ··· 1629 1630 'PhabricatorRepositoryController' => 'applications/repository/controller/PhabricatorRepositoryController.php', 1630 1631 'PhabricatorRepositoryCreateController' => 'applications/repository/controller/PhabricatorRepositoryCreateController.php', 1631 1632 'PhabricatorRepositoryDAO' => 'applications/repository/storage/PhabricatorRepositoryDAO.php', 1632 - 'PhabricatorRepositoryDeleteController' => 'applications/repository/controller/PhabricatorRepositoryDeleteController.php', 1633 1633 'PhabricatorRepositoryDiscoveryEngine' => 'applications/repository/engine/PhabricatorRepositoryDiscoveryEngine.php', 1634 - 'PhabricatorRepositoryEditController' => 'applications/repository/controller/PhabricatorRepositoryEditController.php', 1635 1634 'PhabricatorRepositoryEditor' => 'applications/repository/editor/PhabricatorRepositoryEditor.php', 1636 1635 'PhabricatorRepositoryEngine' => 'applications/repository/engine/PhabricatorRepositoryEngine.php', 1637 1636 'PhabricatorRepositoryGitCommitChangeParserWorker' => 'applications/repository/worker/commitchangeparser/PhabricatorRepositoryGitCommitChangeParserWorker.php', ··· 2686 2685 'DiffusionRepositoryEditBasicController' => 'DiffusionRepositoryEditController', 2687 2686 'DiffusionRepositoryEditBranchesController' => 'DiffusionRepositoryEditController', 2688 2687 'DiffusionRepositoryEditController' => 'DiffusionController', 2688 + 'DiffusionRepositoryEditDeleteController' => 'DiffusionRepositoryEditController', 2689 2689 'DiffusionRepositoryEditEncodingController' => 'DiffusionRepositoryEditController', 2690 2690 'DiffusionRepositoryEditLocalController' => 'DiffusionRepositoryEditController', 2691 2691 'DiffusionRepositoryEditMainController' => 'DiffusionRepositoryEditController', ··· 3956 3956 'PhabricatorRepositoryController' => 'PhabricatorController', 3957 3957 'PhabricatorRepositoryCreateController' => 'PhabricatorRepositoryController', 3958 3958 'PhabricatorRepositoryDAO' => 'PhabricatorLiskDAO', 3959 - 'PhabricatorRepositoryDeleteController' => 'PhabricatorRepositoryController', 3960 3959 'PhabricatorRepositoryDiscoveryEngine' => 'PhabricatorRepositoryEngine', 3961 - 'PhabricatorRepositoryEditController' => 'PhabricatorRepositoryController', 3962 3960 'PhabricatorRepositoryEditor' => 'PhabricatorApplicationTransactionEditor', 3963 3961 'PhabricatorRepositoryGitCommitChangeParserWorker' => 'PhabricatorRepositoryCommitChangeParserWorker', 3964 3962 'PhabricatorRepositoryGitCommitMessageParserWorker' => 'PhabricatorRepositoryCommitMessageParserWorker',
+1
src/applications/diffusion/application/PhabricatorApplicationDiffusion.php
··· 74 74 'actions/' => 'DiffusionRepositoryEditActionsController', 75 75 '(?P<edit>remote)/' => 'DiffusionRepositoryCreateController', 76 76 'local/' => 'DiffusionRepositoryEditLocalController', 77 + 'delete/' => 'DiffusionRepositoryEditDeleteController', 77 78 ), 78 79 ), 79 80 'inline/' => array(
+58
src/applications/diffusion/controller/DiffusionRepositoryEditDeleteController.php
··· 1 + <?php 2 + 3 + final class DiffusionRepositoryEditDeleteController 4 + extends DiffusionRepositoryEditController { 5 + 6 + public function processRequest() { 7 + $request = $this->getRequest(); 8 + $viewer = $request->getUser(); 9 + $drequest = $this->diffusionRequest; 10 + $repository = $drequest->getRepository(); 11 + 12 + $repository = id(new PhabricatorRepositoryQuery()) 13 + ->setViewer($viewer) 14 + ->requireCapabilities( 15 + array( 16 + PhabricatorPolicyCapability::CAN_VIEW, 17 + PhabricatorPolicyCapability::CAN_EDIT, 18 + )) 19 + ->withIDs(array($repository->getID())) 20 + ->executeOne(); 21 + if (!$repository) { 22 + return new Aphront404Response(); 23 + } 24 + 25 + $edit_uri = $this->getRepositoryControllerURI($repository, 'edit/'); 26 + 27 + $dialog = new AphrontDialogView(); 28 + $text_1 = pht( 29 + 'If you really want to delete the repository, run this command from '. 30 + 'the command line:'); 31 + $command = csprintf( 32 + 'phabricator/ $ ./bin/repository delete %s', 33 + $repository->getCallsign()); 34 + $text_2 = pht('Repositories touch many objects and as such deletes are '. 35 + 'prohibitively expensive to run from the web UI.'); 36 + $body = phutil_tag( 37 + 'div', 38 + array( 39 + 'class' => 'phabricator-remarkup', 40 + ), 41 + array( 42 + phutil_tag('p', array(), $text_1), 43 + phutil_tag('p', array(), 44 + phutil_tag('tt', array(), $command)), 45 + phutil_tag('p', array(), $text_2), 46 + )); 47 + 48 + $dialog = id(new AphrontDialogView()) 49 + ->setUser($request->getUser()) 50 + ->setTitle(pht('Really want to delete the repository?')) 51 + ->appendChild($body) 52 + ->addCancelButton($edit_uri, pht('Okay')); 53 + 54 + return id(new AphrontDialogResponse())->setDialog($dialog); 55 + } 56 + 57 + 58 + }
+8
src/applications/diffusion/controller/DiffusionRepositoryEditMainController.php
··· 174 174 175 175 $view->addAction($activate); 176 176 177 + $view->addAction( 178 + id(new PhabricatorActionView()) 179 + ->setName(pht('Delete Repository')) 180 + ->setIcon('delete') 181 + ->setHref( 182 + $this->getRepositoryControllerURI($repository, 'edit/delete/')) 183 + ->setWorkflow(true)); 184 + 177 185 return $view; 178 186 } 179 187
-55
src/applications/repository/controller/PhabricatorRepositoryDeleteController.php
··· 1 - <?php 2 - 3 - final class PhabricatorRepositoryDeleteController 4 - extends PhabricatorRepositoryController { 5 - 6 - private $id; 7 - 8 - public function willProcessRequest(array $data) { 9 - $this->id = $data['id']; 10 - } 11 - 12 - public function processRequest() { 13 - $viewer = $this->getRequest()->getUser(); 14 - 15 - $repository = id(new PhabricatorRepositoryQuery()) 16 - ->setViewer($viewer) 17 - ->withIDs(array($this->id)) 18 - ->executeOne(); 19 - if (!$repository) { 20 - return new Aphront404Response(); 21 - } 22 - 23 - $request = $this->getRequest(); 24 - 25 - if ($request->isDialogFormPost()) { 26 - return id(new AphrontRedirectResponse())->setURI('/repository/'); 27 - } 28 - 29 - $dialog = new AphrontDialogView(); 30 - $text_1 = pht('If you really want to delete the repository, you must run:'); 31 - $command = 'bin/repository delete '.$repository->getCallsign(); 32 - $text_2 = pht('Repositories touch many objects and as such deletes are '. 33 - 'prohibitively expensive to run from the web UI.'); 34 - $body = phutil_tag( 35 - 'div', 36 - array( 37 - 'class' => 'phabricator-remarkup', 38 - ), 39 - array( 40 - phutil_tag('p', array(), $text_1), 41 - phutil_tag('p', array(), 42 - phutil_tag('tt', array(), $command)), 43 - phutil_tag('p', array(), $text_2), 44 - )); 45 - 46 - $dialog 47 - ->setUser($request->getUser()) 48 - ->setTitle(pht('Really want to delete the repository?')) 49 - ->appendChild($body) 50 - ->setSubmitURI('/repository/delete/'.$this->id.'/') 51 - ->addSubmitButton(pht('Okay')); 52 - 53 - return id(new AphrontDialogResponse())->setDialog($dialog); 54 - } 55 - }
-11
src/applications/repository/controller/PhabricatorRepositoryListController.php
··· 41 41 'href' => '/repository/edit/'.$repo->getID().'/', 42 42 ), 43 43 'Edit'), 44 - javelin_tag( 45 - 'a', 46 - array( 47 - 'class' => 'button small grey', 48 - 'href' => '/repository/delete/'.$repo->getID().'/', 49 - 'sigil' => 'workflow', 50 - ), 51 - 'Delete'), 52 44 ); 53 45 } 54 46 ··· 60 52 'Type', 61 53 'Diffusion', 62 54 '', 63 - '' 64 55 )); 65 56 $table->setColumnClasses( 66 57 array( ··· 69 60 null, 70 61 null, 71 62 'action', 72 - 'action', 73 63 )); 74 64 75 65 $table->setColumnVisibility( ··· 78 68 true, 79 69 true, 80 70 true, 81 - $is_admin, 82 71 $is_admin, 83 72 )); 84 73