Changeset View
Changeset View
Standalone View
Standalone View
src/applications/release/editor/ReleaseReleaseEditEngine.php
- This file was added.
<?php | |||||
final class ReleaseReleaseEditEngine | |||||
extends PhabricatorEditEngine { | |||||
const ENGINECONST = 'release.release'; | |||||
public function getEngineName() { | |||||
return pht('Releases'); | |||||
} | |||||
public function isEngineConfigurable() { | |||||
// This hides it from the quick-create menu, because the built-in form | |||||
// doesn't actually do anything. | |||||
return false; | |||||
} | |||||
protected function getObjectName() { | |||||
return pht('Release'); | |||||
} | |||||
public function getSummaryHeader() { | |||||
return pht('Configure Releases Forms'); | |||||
} | |||||
public function getSummaryText() { | |||||
return pht('Configure creation and editing Releases.'); | |||||
} | |||||
public function getEngineApplicationClass() { | |||||
return 'PhabricatorReleaseApplication'; | |||||
} | |||||
protected function newEditableObject() { | |||||
$viewer = $this->getViewer(); | |||||
return ReleaseRelease::initializeNewRelease($viewer); | |||||
} | |||||
protected function newObjectQuery() { | |||||
return id(new ReleaseReleaseQuery()); | |||||
} | |||||
protected function getObjectCreateTitleText($object) { | |||||
return pht('Create New Release'); | |||||
} | |||||
protected function getObjectEditTitleText($object) { | |||||
return pht('Edit Release %s', $object->getName()); | |||||
} | |||||
protected function getEditorURI() { | |||||
return '/release/edit/'; | |||||
} | |||||
protected function getObjectEditShortText($object) { | |||||
return $object->getName(); | |||||
} | |||||
protected function getObjectCreateShortText() { | |||||
return pht('New Release'); | |||||
} | |||||
protected function getCreateNewObjectPolicy() { | |||||
return $this->getApplication()->getPolicy( | |||||
ReleaseReleaseCreateReleaseCapability::CAPABILITY); | |||||
} | |||||
protected function getCommentViewHeaderText($object) { | |||||
return pht('Discuss Release'); | |||||
} | |||||
protected function getCommentViewButtonText($object) { | |||||
return pht('Comment'); | |||||
} | |||||
protected function getObjectViewURI($object) { | |||||
return $object->getURI(); | |||||
} | |||||
protected function buildCustomEditFields($object) { | |||||
$templates = PhabricatorReleaseTemplate::getTemplatesMap(); | |||||
$used_template = $object->getReleaseTemplateKey(); | |||||
if (strlen($used_template) && idx($templates, $used_template) == null) { | |||||
// make sure current value is available in UI. | |||||
$templates[$used_template] = $used_template; | |||||
} | |||||
$states = ReleaseRelease::getStatesMap(); | |||||
$is_edit_form = !$this->getIsCreate(); | |||||
return array( | |||||
id(new PhabricatorTextEditField()) | |||||
->setKey('name') | |||||
->setLabel(pht('Name')) | |||||
->setIsRequired(true) | |||||
->setTransactionType( | |||||
ReleaseReleaseNameTransaction::TRANSACTIONTYPE) | |||||
->setDescription(pht('name')) | |||||
->setConduitDescription(pht('Rename the Release.')) | |||||
->setConduitTypeDescription(pht('New Release title.')) | |||||
->setValue($object->getName()), | |||||
id(new PhabricatorSelectEditField()) | |||||
->setKey('type') | |||||
->setLabel(pht('Release Type')) | |||||
->setTransactionType( | |||||
ReleaseReleaseTemplateTransaction::TRANSACTIONTYPE) | |||||
->setIsCopyable(true) | |||||
->setOptions($templates) | |||||
->setIsLocked($is_edit_form) | |||||
->setDescription('Template key to use. ') | |||||
->setValue($object->getReleaseTemplateKey()), | |||||
id(new PhabricatorSelectEditField()) | |||||
->setKey('state') | |||||
->setLabel(pht('State')) | |||||
->setTransactionType( | |||||
ReleaseReleaseStateTransaction::TRANSACTIONTYPE) | |||||
->setIsCopyable(true) | |||||
->setOptions($states) | |||||
->setValue($object->getState()), | |||||
id(new PhabricatorRemarkupEditField()) | |||||
->setKey('description') | |||||
->setLabel(pht('Description')) | |||||
->setTransactionType( | |||||
ReleaseReleaseDescribeTransaction::TRANSACTIONTYPE) | |||||
->setDescription(pht('Free-form text.')) | |||||
->setConduitDescription(pht('Description.')) | |||||
->setConduitTypeDescription(pht('Remarkup')) | |||||
->setValue($object->getDescription()), | |||||
id(new PhabricatorConduitEditField()) | |||||
->setKey('cutpoints') | |||||
->setLabel(pht('Cut Points')) | |||||
->setTransactionType( | |||||
ReleaseReleaseCutpointTransaction::TRANSACTIONTYPE) | |||||
->setDescription(pht('Commits where the revision was cut from')) | |||||
->setConduitTypeDescription('Map repo phid -> commit') | |||||
->setIsConduitOnly(true) | |||||
->setValue($object->getDetail( | |||||
ReleaseRelease::DETAIL_CUTPOINTS)), | |||||
id(new PhabricatorConduitEditField()) | |||||
->setKey('currentrefs') | |||||
->setLabel(pht('Current References')) | |||||
->setTransactionType( | |||||
ReleaseReleaseCurrentRefTransaction::TRANSACTIONTYPE) | |||||
->setDescription('Commits/branches where the revision currently is') | |||||
->setConduitTypeDescription('Map repo phid -> commit/branch') | |||||
->setIsConduitOnly(true) | |||||
->setValue($object->getDetail( | |||||
ReleaseRelease::DETAIL_CURRENTREF)), | |||||
); | |||||
} | |||||
} |