mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-28 12:08:14 +01:00
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
This commit is contained in:
parent
5e07358826
commit
279273dc1c
5 changed files with 9 additions and 133 deletions
|
@ -625,7 +625,6 @@ phutil_register_library_map(array(
|
||||||
'DiffusionCommitDiffEnormousHeraldField' => 'applications/diffusion/herald/DiffusionCommitDiffEnormousHeraldField.php',
|
'DiffusionCommitDiffEnormousHeraldField' => 'applications/diffusion/herald/DiffusionCommitDiffEnormousHeraldField.php',
|
||||||
'DiffusionCommitEditController' => 'applications/diffusion/controller/DiffusionCommitEditController.php',
|
'DiffusionCommitEditController' => 'applications/diffusion/controller/DiffusionCommitEditController.php',
|
||||||
'DiffusionCommitEditEngine' => 'applications/diffusion/editor/DiffusionCommitEditEngine.php',
|
'DiffusionCommitEditEngine' => 'applications/diffusion/editor/DiffusionCommitEditEngine.php',
|
||||||
'DiffusionCommitEditProController' => 'applications/diffusion/controller/DiffusionCommitEditProController.php',
|
|
||||||
'DiffusionCommitFulltextEngine' => 'applications/repository/search/DiffusionCommitFulltextEngine.php',
|
'DiffusionCommitFulltextEngine' => 'applications/repository/search/DiffusionCommitFulltextEngine.php',
|
||||||
'DiffusionCommitHasRevisionEdgeType' => 'applications/diffusion/edge/DiffusionCommitHasRevisionEdgeType.php',
|
'DiffusionCommitHasRevisionEdgeType' => 'applications/diffusion/edge/DiffusionCommitHasRevisionEdgeType.php',
|
||||||
'DiffusionCommitHasRevisionRelationship' => 'applications/diffusion/relationships/DiffusionCommitHasRevisionRelationship.php',
|
'DiffusionCommitHasRevisionRelationship' => 'applications/diffusion/relationships/DiffusionCommitHasRevisionRelationship.php',
|
||||||
|
@ -5319,7 +5318,6 @@ phutil_register_library_map(array(
|
||||||
'DiffusionCommitDiffEnormousHeraldField' => 'DiffusionCommitHeraldField',
|
'DiffusionCommitDiffEnormousHeraldField' => 'DiffusionCommitHeraldField',
|
||||||
'DiffusionCommitEditController' => 'DiffusionController',
|
'DiffusionCommitEditController' => 'DiffusionController',
|
||||||
'DiffusionCommitEditEngine' => 'PhabricatorEditEngine',
|
'DiffusionCommitEditEngine' => 'PhabricatorEditEngine',
|
||||||
'DiffusionCommitEditProController' => 'DiffusionController',
|
|
||||||
'DiffusionCommitFulltextEngine' => 'PhabricatorFulltextEngine',
|
'DiffusionCommitFulltextEngine' => 'PhabricatorFulltextEngine',
|
||||||
'DiffusionCommitHasRevisionEdgeType' => 'PhabricatorEdgeType',
|
'DiffusionCommitHasRevisionEdgeType' => 'PhabricatorEdgeType',
|
||||||
'DiffusionCommitHasRevisionRelationship' => 'DiffusionCommitRelationship',
|
'DiffusionCommitHasRevisionRelationship' => 'DiffusionCommitRelationship',
|
||||||
|
|
|
@ -63,8 +63,6 @@ final class PhabricatorDiffusionApplication extends PhabricatorApplication {
|
||||||
=> 'DiffusionCommitBranchesController',
|
=> 'DiffusionCommitBranchesController',
|
||||||
'commit/(?P<commit>[a-z0-9]+)/tags/'
|
'commit/(?P<commit>[a-z0-9]+)/tags/'
|
||||||
=> 'DiffusionCommitTagsController',
|
=> 'DiffusionCommitTagsController',
|
||||||
'commit/(?P<commit>[a-z0-9]+)/edit/'
|
|
||||||
=> 'DiffusionCommitEditController',
|
|
||||||
'compare/' => 'DiffusionCompareController',
|
'compare/' => 'DiffusionCompareController',
|
||||||
'manage/(?:(?P<panel>[^/]+)/)?'
|
'manage/(?:(?P<panel>[^/]+)/)?'
|
||||||
=> 'DiffusionRepositoryManagePanelsController',
|
=> 'DiffusionRepositoryManagePanelsController',
|
||||||
|
@ -134,7 +132,7 @@ final class PhabricatorDiffusionApplication extends PhabricatorApplication {
|
||||||
|
|
||||||
'commit/' => array(
|
'commit/' => array(
|
||||||
$this->getEditRoutePattern('edit/') =>
|
$this->getEditRoutePattern('edit/') =>
|
||||||
'DiffusionCommitEditProController',
|
'DiffusionCommitEditController',
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
|
|
@ -997,12 +997,12 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
$commit,
|
$commit,
|
||||||
PhabricatorPolicyCapability::CAN_EDIT);
|
PhabricatorPolicyCapability::CAN_EDIT);
|
||||||
|
|
||||||
$identifier = $commit->getCommitIdentifier();
|
$id = $commit->getID();
|
||||||
$uri = $repository->getPathURI("commit/{$identifier}/edit/");
|
$edit_uri = $this->getApplicationURI("/commit/edit/{$id}/");
|
||||||
|
|
||||||
$action = id(new PhabricatorActionView())
|
$action = id(new PhabricatorActionView())
|
||||||
->setName(pht('Edit Commit'))
|
->setName(pht('Edit Commit'))
|
||||||
->setHref($uri)
|
->setHref($edit_uri)
|
||||||
->setIcon('fa-pencil')
|
->setIcon('fa-pencil')
|
||||||
->setDisabled(!$can_edit)
|
->setDisabled(!$can_edit)
|
||||||
->setWorkflow(!$can_edit);
|
->setWorkflow(!$can_edit);
|
||||||
|
|
|
@ -1,120 +1,12 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
final class DiffusionCommitEditController extends DiffusionController {
|
final class DiffusionCommitEditController
|
||||||
|
extends DiffusionController {
|
||||||
|
|
||||||
public function handleRequest(AphrontRequest $request) {
|
public function handleRequest(AphrontRequest $request) {
|
||||||
$response = $this->loadDiffusionContext();
|
return id(new DiffusionCommitEditEngine())
|
||||||
if ($response) {
|
->setController($this)
|
||||||
return $response;
|
->buildResponse();
|
||||||
}
|
|
||||||
|
|
||||||
$viewer = $this->getViewer();
|
|
||||||
$drequest = $this->getDiffusionRequest();
|
|
||||||
$repository = $drequest->getRepository();
|
|
||||||
$commit = $drequest->loadCommit();
|
|
||||||
|
|
||||||
if (!$commit) {
|
|
||||||
return new Aphront404Response();
|
|
||||||
}
|
|
||||||
|
|
||||||
$data = $commit->loadCommitData();
|
|
||||||
$page_title = pht('Edit Diffusion Commit');
|
|
||||||
|
|
||||||
$commit_phid = $commit->getPHID();
|
|
||||||
$edge_type = PhabricatorProjectObjectHasProjectEdgeType::EDGECONST;
|
|
||||||
$current_proj_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
|
|
||||||
$commit_phid,
|
|
||||||
$edge_type);
|
|
||||||
|
|
||||||
if ($request->isFormPost()) {
|
|
||||||
$xactions = array();
|
|
||||||
$proj_phids = $request->getArr('projects');
|
|
||||||
$xactions[] = id(new PhabricatorAuditTransaction())
|
|
||||||
->setTransactionType(PhabricatorTransactions::TYPE_EDGE)
|
|
||||||
->setMetadataValue('edge:type', $edge_type)
|
|
||||||
->setNewValue(array('=' => array_fuse($proj_phids)));
|
|
||||||
|
|
||||||
$editor = id(new PhabricatorAuditEditor())
|
|
||||||
->setActor($viewer)
|
|
||||||
->setContinueOnNoEffect(true)
|
|
||||||
->setContentSourceFromRequest($request);
|
|
||||||
|
|
||||||
$editor->applyTransactions($commit, $xactions);
|
|
||||||
|
|
||||||
return id(new AphrontRedirectResponse())
|
|
||||||
->setURI($commit->getURI());
|
|
||||||
}
|
|
||||||
|
|
||||||
$tokenizer_id = celerity_generate_unique_node_id();
|
|
||||||
$form = id(new AphrontFormView())
|
|
||||||
->setUser($viewer)
|
|
||||||
->setAction($request->getRequestURI()->getPath())
|
|
||||||
->appendControl(
|
|
||||||
id(new AphrontFormTokenizerControl())
|
|
||||||
->setLabel(pht('Projects'))
|
|
||||||
->setName('projects')
|
|
||||||
->setValue($current_proj_phids)
|
|
||||||
->setID($tokenizer_id)
|
|
||||||
->setDatasource(new PhabricatorProjectDatasource()));
|
|
||||||
|
|
||||||
$reason = $data->getCommitDetail('autocloseReason', false);
|
|
||||||
$reason = PhabricatorRepository::BECAUSE_AUTOCLOSE_FORCED;
|
|
||||||
if ($reason !== false) {
|
|
||||||
switch ($reason) {
|
|
||||||
case PhabricatorRepository::BECAUSE_REPOSITORY_IMPORTING:
|
|
||||||
$desc = pht('No, Repository Importing');
|
|
||||||
break;
|
|
||||||
case PhabricatorRepository::BECAUSE_AUTOCLOSE_DISABLED:
|
|
||||||
$desc = pht('No, Autoclose Disabled');
|
|
||||||
break;
|
|
||||||
case PhabricatorRepository::BECAUSE_NOT_ON_AUTOCLOSE_BRANCH:
|
|
||||||
$desc = pht('No, Not On Autoclose Branch');
|
|
||||||
break;
|
|
||||||
case PhabricatorRepository::BECAUSE_AUTOCLOSE_FORCED:
|
|
||||||
$desc = pht('Yes, Forced Via bin/repository CLI Tool.');
|
|
||||||
break;
|
|
||||||
case null:
|
|
||||||
$desc = pht('Yes');
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
$desc = pht('Unknown');
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$doc_href = PhabricatorEnv::getDoclink('Diffusion User Guide: Autoclose');
|
|
||||||
$doc_link = phutil_tag(
|
|
||||||
'a',
|
|
||||||
array(
|
|
||||||
'href' => $doc_href,
|
|
||||||
'target' => '_blank',
|
|
||||||
),
|
|
||||||
pht('Learn More'));
|
|
||||||
|
|
||||||
$form->appendChild(
|
|
||||||
id(new AphrontFormMarkupControl())
|
|
||||||
->setLabel(pht('Autoclose?'))
|
|
||||||
->setValue(array($desc, " \xC2\xB7 ", $doc_link)));
|
|
||||||
}
|
|
||||||
|
|
||||||
$form->appendControl(
|
|
||||||
id(new AphrontFormSubmitControl())
|
|
||||||
->setValue(pht('Save'))
|
|
||||||
->addCancelButton($commit->getURI()));
|
|
||||||
|
|
||||||
$crumbs = $this->buildCrumbs(
|
|
||||||
array(
|
|
||||||
'commit' => true,
|
|
||||||
));
|
|
||||||
$crumbs->addTextCrumb(pht('Edit'));
|
|
||||||
|
|
||||||
$form_box = id(new PHUIObjectBoxView())
|
|
||||||
->setHeaderText($page_title)
|
|
||||||
->setForm($form);
|
|
||||||
|
|
||||||
return $this->newPage()
|
|
||||||
->setTitle($page_title)
|
|
||||||
->setCrumbs($crumbs)
|
|
||||||
->appendChild($form_box);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,12 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
final class DiffusionCommitEditProController
|
|
||||||
extends DiffusionController {
|
|
||||||
|
|
||||||
public function handleRequest(AphrontRequest $request) {
|
|
||||||
return id(new DiffusionCommitEditEngine())
|
|
||||||
->setController($this)
|
|
||||||
->buildResponse();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
Loading…
Add table
Reference in a new issue