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

Replace old commit edit controller with new EditEngine controller

Summary: Ref T10978. The new controller now does everything the old one did, so swap 'em and nuke the old one.

Test Plan: Edited a commit, hit the new controller, things worked real good.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10978

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

+9 -133
-2
src/__phutil_library_map__.php
··· 625 625 'DiffusionCommitDiffEnormousHeraldField' => 'applications/diffusion/herald/DiffusionCommitDiffEnormousHeraldField.php', 626 626 'DiffusionCommitEditController' => 'applications/diffusion/controller/DiffusionCommitEditController.php', 627 627 'DiffusionCommitEditEngine' => 'applications/diffusion/editor/DiffusionCommitEditEngine.php', 628 - 'DiffusionCommitEditProController' => 'applications/diffusion/controller/DiffusionCommitEditProController.php', 629 628 'DiffusionCommitFulltextEngine' => 'applications/repository/search/DiffusionCommitFulltextEngine.php', 630 629 'DiffusionCommitHasRevisionEdgeType' => 'applications/diffusion/edge/DiffusionCommitHasRevisionEdgeType.php', 631 630 'DiffusionCommitHasRevisionRelationship' => 'applications/diffusion/relationships/DiffusionCommitHasRevisionRelationship.php', ··· 5319 5318 'DiffusionCommitDiffEnormousHeraldField' => 'DiffusionCommitHeraldField', 5320 5319 'DiffusionCommitEditController' => 'DiffusionController', 5321 5320 'DiffusionCommitEditEngine' => 'PhabricatorEditEngine', 5322 - 'DiffusionCommitEditProController' => 'DiffusionController', 5323 5321 'DiffusionCommitFulltextEngine' => 'PhabricatorFulltextEngine', 5324 5322 'DiffusionCommitHasRevisionEdgeType' => 'PhabricatorEdgeType', 5325 5323 'DiffusionCommitHasRevisionRelationship' => 'DiffusionCommitRelationship',
+1 -3
src/applications/diffusion/application/PhabricatorDiffusionApplication.php
··· 63 63 => 'DiffusionCommitBranchesController', 64 64 'commit/(?P<commit>[a-z0-9]+)/tags/' 65 65 => 'DiffusionCommitTagsController', 66 - 'commit/(?P<commit>[a-z0-9]+)/edit/' 67 - => 'DiffusionCommitEditController', 68 66 'compare/' => 'DiffusionCompareController', 69 67 'manage/(?:(?P<panel>[^/]+)/)?' 70 68 => 'DiffusionRepositoryManagePanelsController', ··· 134 132 135 133 'commit/' => array( 136 134 $this->getEditRoutePattern('edit/') => 137 - 'DiffusionCommitEditProController', 135 + 'DiffusionCommitEditController', 138 136 ), 139 137 ), 140 138 );
+3 -3
src/applications/diffusion/controller/DiffusionCommitController.php
··· 997 997 $commit, 998 998 PhabricatorPolicyCapability::CAN_EDIT); 999 999 1000 - $identifier = $commit->getCommitIdentifier(); 1001 - $uri = $repository->getPathURI("commit/{$identifier}/edit/"); 1000 + $id = $commit->getID(); 1001 + $edit_uri = $this->getApplicationURI("/commit/edit/{$id}/"); 1002 1002 1003 1003 $action = id(new PhabricatorActionView()) 1004 1004 ->setName(pht('Edit Commit')) 1005 - ->setHref($uri) 1005 + ->setHref($edit_uri) 1006 1006 ->setIcon('fa-pencil') 1007 1007 ->setDisabled(!$can_edit) 1008 1008 ->setWorkflow(!$can_edit);
+5 -113
src/applications/diffusion/controller/DiffusionCommitEditController.php
··· 1 1 <?php 2 2 3 - final class DiffusionCommitEditController extends DiffusionController { 3 + final class DiffusionCommitEditController 4 + extends DiffusionController { 4 5 5 6 public function handleRequest(AphrontRequest $request) { 6 - $response = $this->loadDiffusionContext(); 7 - if ($response) { 8 - return $response; 9 - } 10 - 11 - $viewer = $this->getViewer(); 12 - $drequest = $this->getDiffusionRequest(); 13 - $repository = $drequest->getRepository(); 14 - $commit = $drequest->loadCommit(); 15 - 16 - if (!$commit) { 17 - return new Aphront404Response(); 18 - } 19 - 20 - $data = $commit->loadCommitData(); 21 - $page_title = pht('Edit Diffusion Commit'); 22 - 23 - $commit_phid = $commit->getPHID(); 24 - $edge_type = PhabricatorProjectObjectHasProjectEdgeType::EDGECONST; 25 - $current_proj_phids = PhabricatorEdgeQuery::loadDestinationPHIDs( 26 - $commit_phid, 27 - $edge_type); 28 - 29 - if ($request->isFormPost()) { 30 - $xactions = array(); 31 - $proj_phids = $request->getArr('projects'); 32 - $xactions[] = id(new PhabricatorAuditTransaction()) 33 - ->setTransactionType(PhabricatorTransactions::TYPE_EDGE) 34 - ->setMetadataValue('edge:type', $edge_type) 35 - ->setNewValue(array('=' => array_fuse($proj_phids))); 36 - 37 - $editor = id(new PhabricatorAuditEditor()) 38 - ->setActor($viewer) 39 - ->setContinueOnNoEffect(true) 40 - ->setContentSourceFromRequest($request); 41 - 42 - $editor->applyTransactions($commit, $xactions); 43 - 44 - return id(new AphrontRedirectResponse()) 45 - ->setURI($commit->getURI()); 46 - } 47 - 48 - $tokenizer_id = celerity_generate_unique_node_id(); 49 - $form = id(new AphrontFormView()) 50 - ->setUser($viewer) 51 - ->setAction($request->getRequestURI()->getPath()) 52 - ->appendControl( 53 - id(new AphrontFormTokenizerControl()) 54 - ->setLabel(pht('Projects')) 55 - ->setName('projects') 56 - ->setValue($current_proj_phids) 57 - ->setID($tokenizer_id) 58 - ->setDatasource(new PhabricatorProjectDatasource())); 59 - 60 - $reason = $data->getCommitDetail('autocloseReason', false); 61 - $reason = PhabricatorRepository::BECAUSE_AUTOCLOSE_FORCED; 62 - if ($reason !== false) { 63 - switch ($reason) { 64 - case PhabricatorRepository::BECAUSE_REPOSITORY_IMPORTING: 65 - $desc = pht('No, Repository Importing'); 66 - break; 67 - case PhabricatorRepository::BECAUSE_AUTOCLOSE_DISABLED: 68 - $desc = pht('No, Autoclose Disabled'); 69 - break; 70 - case PhabricatorRepository::BECAUSE_NOT_ON_AUTOCLOSE_BRANCH: 71 - $desc = pht('No, Not On Autoclose Branch'); 72 - break; 73 - case PhabricatorRepository::BECAUSE_AUTOCLOSE_FORCED: 74 - $desc = pht('Yes, Forced Via bin/repository CLI Tool.'); 75 - break; 76 - case null: 77 - $desc = pht('Yes'); 78 - break; 79 - default: 80 - $desc = pht('Unknown'); 81 - break; 82 - } 83 - 84 - $doc_href = PhabricatorEnv::getDoclink('Diffusion User Guide: Autoclose'); 85 - $doc_link = phutil_tag( 86 - 'a', 87 - array( 88 - 'href' => $doc_href, 89 - 'target' => '_blank', 90 - ), 91 - pht('Learn More')); 92 - 93 - $form->appendChild( 94 - id(new AphrontFormMarkupControl()) 95 - ->setLabel(pht('Autoclose?')) 96 - ->setValue(array($desc, " \xC2\xB7 ", $doc_link))); 97 - } 98 - 99 - $form->appendControl( 100 - id(new AphrontFormSubmitControl()) 101 - ->setValue(pht('Save')) 102 - ->addCancelButton($commit->getURI())); 103 - 104 - $crumbs = $this->buildCrumbs( 105 - array( 106 - 'commit' => true, 107 - )); 108 - $crumbs->addTextCrumb(pht('Edit')); 109 - 110 - $form_box = id(new PHUIObjectBoxView()) 111 - ->setHeaderText($page_title) 112 - ->setForm($form); 113 - 114 - return $this->newPage() 115 - ->setTitle($page_title) 116 - ->setCrumbs($crumbs) 117 - ->appendChild($form_box); 7 + return id(new DiffusionCommitEditEngine()) 8 + ->setController($this) 9 + ->buildResponse(); 118 10 } 119 11 120 12 }
-12
src/applications/diffusion/controller/DiffusionCommitEditProController.php
··· 1 - <?php 2 - 3 - final class DiffusionCommitEditProController 4 - extends DiffusionController { 5 - 6 - public function handleRequest(AphrontRequest $request) { 7 - return id(new DiffusionCommitEditEngine()) 8 - ->setController($this) 9 - ->buildResponse(); 10 - } 11 - 12 - }