Make callsigns editable on repository basic information
Summary: Ref T4245. This is a prelude to removing them from the "create" screen. Currently, if you try to delete the callsign you get an unceremonious database error, but the next diff (or maybe two) will permit that, so I didn't put any "this is required yada yada" text in. This could also maybe use some big flashing warning lights and a "if you edit this, all your URIs break" but I'll save that for later. Test Plan: Changed the callsign for a repository. Reviewers: chad Reviewed By: chad Maniphest Tasks: T4245 Differential Revision: https://secure.phabricator.com/D15304
This commit is contained in:
@@ -18,11 +18,13 @@ final class DiffusionRepositoryEditBasicController
|
||||
$v_name = $repository->getName();
|
||||
$v_desc = $repository->getDetail('description');
|
||||
$v_slug = $repository->getRepositorySlug();
|
||||
$v_callsign = $repository->getCallsign();
|
||||
$v_projects = PhabricatorEdgeQuery::loadDestinationPHIDs(
|
||||
$repository->getPHID(),
|
||||
PhabricatorProjectObjectHasProjectEdgeType::EDGECONST);
|
||||
$e_name = true;
|
||||
$e_slug = null;
|
||||
$e_callsign = null;
|
||||
$errors = array();
|
||||
|
||||
$validation_exception = null;
|
||||
@@ -31,6 +33,7 @@ final class DiffusionRepositoryEditBasicController
|
||||
$v_desc = $request->getStr('description');
|
||||
$v_projects = $request->getArr('projectPHIDs');
|
||||
$v_slug = $request->getStr('slug');
|
||||
$v_callsign = $request->getStr('callsign');
|
||||
|
||||
if (!strlen($v_name)) {
|
||||
$e_name = pht('Required');
|
||||
@@ -47,6 +50,7 @@ final class DiffusionRepositoryEditBasicController
|
||||
$type_desc = PhabricatorRepositoryTransaction::TYPE_DESCRIPTION;
|
||||
$type_edge = PhabricatorTransactions::TYPE_EDGE;
|
||||
$type_slug = PhabricatorRepositoryTransaction::TYPE_SLUG;
|
||||
$type_callsign = PhabricatorRepositoryTransaction::TYPE_CALLSIGN;
|
||||
|
||||
$xactions[] = id(clone $template)
|
||||
->setTransactionType($type_name)
|
||||
@@ -60,6 +64,10 @@ final class DiffusionRepositoryEditBasicController
|
||||
->setTransactionType($type_slug)
|
||||
->setNewValue($v_slug);
|
||||
|
||||
$xactions[] = id(clone $template)
|
||||
->setTransactionType($type_callsign)
|
||||
->setNewValue($v_callsign);
|
||||
|
||||
$xactions[] = id(clone $template)
|
||||
->setTransactionType($type_edge)
|
||||
->setMetadataValue(
|
||||
@@ -78,11 +86,16 @@ final class DiffusionRepositoryEditBasicController
|
||||
try {
|
||||
$editor->applyTransactions($repository, $xactions);
|
||||
|
||||
// The preferred edit URI may have changed if the callsign or slug
|
||||
// were adjusted, so grab a fresh copy.
|
||||
$edit_uri = $this->getRepositoryControllerURI($repository, 'edit/');
|
||||
|
||||
return id(new AphrontRedirectResponse())->setURI($edit_uri);
|
||||
} catch (PhabricatorApplicationTransactionValidationException $ex) {
|
||||
$validation_exception = $ex;
|
||||
|
||||
$e_slug = $ex->getShortMessage($type_slug);
|
||||
$e_callsign = $ex->getShortMessage($type_callsign);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,6 +119,12 @@ final class DiffusionRepositoryEditBasicController
|
||||
->setLabel(pht('Short Name'))
|
||||
->setValue($v_slug)
|
||||
->setError($e_slug))
|
||||
->appendChild(
|
||||
id(new AphrontFormTextControl())
|
||||
->setName('callsign')
|
||||
->setLabel(pht('Callsign'))
|
||||
->setValue($v_callsign)
|
||||
->setError($e_callsign))
|
||||
->appendChild(
|
||||
id(new PhabricatorRemarkupControl())
|
||||
->setUser($viewer)
|
||||
|
||||
Reference in New Issue
Block a user