mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-23 05:50:55 +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',
|
||||
'DiffusionCommitEditController' => 'applications/diffusion/controller/DiffusionCommitEditController.php',
|
||||
'DiffusionCommitEditEngine' => 'applications/diffusion/editor/DiffusionCommitEditEngine.php',
|
||||
'DiffusionCommitEditProController' => 'applications/diffusion/controller/DiffusionCommitEditProController.php',
|
||||
'DiffusionCommitFulltextEngine' => 'applications/repository/search/DiffusionCommitFulltextEngine.php',
|
||||
'DiffusionCommitHasRevisionEdgeType' => 'applications/diffusion/edge/DiffusionCommitHasRevisionEdgeType.php',
|
||||
'DiffusionCommitHasRevisionRelationship' => 'applications/diffusion/relationships/DiffusionCommitHasRevisionRelationship.php',
|
||||
|
@ -5319,7 +5318,6 @@ phutil_register_library_map(array(
|
|||
'DiffusionCommitDiffEnormousHeraldField' => 'DiffusionCommitHeraldField',
|
||||
'DiffusionCommitEditController' => 'DiffusionController',
|
||||
'DiffusionCommitEditEngine' => 'PhabricatorEditEngine',
|
||||
'DiffusionCommitEditProController' => 'DiffusionController',
|
||||
'DiffusionCommitFulltextEngine' => 'PhabricatorFulltextEngine',
|
||||
'DiffusionCommitHasRevisionEdgeType' => 'PhabricatorEdgeType',
|
||||
'DiffusionCommitHasRevisionRelationship' => 'DiffusionCommitRelationship',
|
||||
|
|
|
@ -63,8 +63,6 @@ final class PhabricatorDiffusionApplication extends PhabricatorApplication {
|
|||
=> 'DiffusionCommitBranchesController',
|
||||
'commit/(?P<commit>[a-z0-9]+)/tags/'
|
||||
=> 'DiffusionCommitTagsController',
|
||||
'commit/(?P<commit>[a-z0-9]+)/edit/'
|
||||
=> 'DiffusionCommitEditController',
|
||||
'compare/' => 'DiffusionCompareController',
|
||||
'manage/(?:(?P<panel>[^/]+)/)?'
|
||||
=> 'DiffusionRepositoryManagePanelsController',
|
||||
|
@ -134,7 +132,7 @@ final class PhabricatorDiffusionApplication extends PhabricatorApplication {
|
|||
|
||||
'commit/' => array(
|
||||
$this->getEditRoutePattern('edit/') =>
|
||||
'DiffusionCommitEditProController',
|
||||
'DiffusionCommitEditController',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
|
|
@ -997,12 +997,12 @@ final class DiffusionCommitController extends DiffusionController {
|
|||
$commit,
|
||||
PhabricatorPolicyCapability::CAN_EDIT);
|
||||
|
||||
$identifier = $commit->getCommitIdentifier();
|
||||
$uri = $repository->getPathURI("commit/{$identifier}/edit/");
|
||||
$id = $commit->getID();
|
||||
$edit_uri = $this->getApplicationURI("/commit/edit/{$id}/");
|
||||
|
||||
$action = id(new PhabricatorActionView())
|
||||
->setName(pht('Edit Commit'))
|
||||
->setHref($uri)
|
||||
->setHref($edit_uri)
|
||||
->setIcon('fa-pencil')
|
||||
->setDisabled(!$can_edit)
|
||||
->setWorkflow(!$can_edit);
|
||||
|
|
|
@ -1,120 +1,12 @@
|
|||
<?php
|
||||
|
||||
final class DiffusionCommitEditController extends DiffusionController {
|
||||
final class DiffusionCommitEditController
|
||||
extends DiffusionController {
|
||||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
$response = $this->loadDiffusionContext();
|
||||
if ($response) {
|
||||
return $response;
|
||||
}
|
||||
|
||||
$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);
|
||||
return id(new DiffusionCommitEditEngine())
|
||||
->setController($this)
|
||||
->buildResponse();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -1,12 +0,0 @@
|
|||
<?php
|
||||
|
||||
final class DiffusionCommitEditProController
|
||||
extends DiffusionController {
|
||||
|
||||
public function handleRequest(AphrontRequest $request) {
|
||||
return id(new DiffusionCommitEditEngine())
|
||||
->setController($this)
|
||||
->buildResponse();
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in a new issue