Differential D17084 Diff 41100 src/applications/differential/customfield/DifferentialTestPlanField.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/customfield/DifferentialTestPlanField.php
| <?php | <?php | ||||
| final class DifferentialTestPlanField | final class DifferentialTestPlanField | ||||
| extends DifferentialCoreCustomField { | extends DifferentialCoreCustomField { | ||||
| public function getFieldKey() { | public function getFieldKey() { | ||||
| return 'differential:test-plan'; | return 'differential:test-plan'; | ||||
| } | } | ||||
| public function getFieldKeyForConduit() { | |||||
| return 'testPlan'; | |||||
| } | |||||
| public function getFieldName() { | public function getFieldName() { | ||||
| return pht('Test Plan'); | return pht('Test Plan'); | ||||
| } | } | ||||
| public function getFieldDescription() { | public function getFieldDescription() { | ||||
| return pht('Actions performed to verify the behavior of the change.'); | return pht('Actions performed to verify the behavior of the change.'); | ||||
| } | } | ||||
| protected function readValueFromRevision( | protected function readValueFromRevision( | ||||
| DifferentialRevision $revision) { | DifferentialRevision $revision) { | ||||
| if (!$revision->getID()) { | if (!$revision->getID()) { | ||||
| return null; | return null; | ||||
| } | } | ||||
| return $revision->getTestPlan(); | return $revision->getTestPlan(); | ||||
| } | } | ||||
| protected function writeValueToRevision( | |||||
| DifferentialRevision $revision, | |||||
| $value) { | |||||
| $revision->setTestPlan($value); | |||||
| } | |||||
| protected function isCoreFieldRequired() { | |||||
| return PhabricatorEnv::getEnvConfig('differential.require-test-plan-field'); | |||||
| } | |||||
| public function canDisableField() { | public function canDisableField() { | ||||
| return true; | return true; | ||||
| } | } | ||||
| protected function getCoreFieldRequiredErrorString() { | |||||
| return pht( | |||||
| 'You must provide a test plan. Describe the actions you performed '. | |||||
| 'to verify the behavior of this change.'); | |||||
| } | |||||
| public function readValueFromRequest(AphrontRequest $request) { | |||||
| $this->setValue($request->getStr($this->getFieldKey())); | |||||
| } | |||||
| public function renderEditControl(array $handles) { | |||||
| return id(new PhabricatorRemarkupControl()) | |||||
| ->setUser($this->getViewer()) | |||||
| ->setName($this->getFieldKey()) | |||||
| ->setValue($this->getValue()) | |||||
| ->setError($this->getFieldError()) | |||||
| ->setLabel($this->getFieldName()); | |||||
| } | |||||
| public function getApplicationTransactionTitle( | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| $author_phid = $xaction->getAuthorPHID(); | |||||
| $old = $xaction->getOldValue(); | |||||
| $new = $xaction->getNewValue(); | |||||
| return pht( | |||||
| '%s updated the test plan for this revision.', | |||||
| $xaction->renderHandleLink($author_phid)); | |||||
| } | |||||
| public function getApplicationTransactionTitleForFeed( | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| $object_phid = $xaction->getObjectPHID(); | |||||
| $author_phid = $xaction->getAuthorPHID(); | |||||
| $old = $xaction->getOldValue(); | |||||
| $new = $xaction->getNewValue(); | |||||
| return pht( | |||||
| '%s updated the test plan for %s.', | |||||
| $xaction->renderHandleLink($author_phid), | |||||
| $xaction->renderHandleLink($object_phid)); | |||||
| } | |||||
| public function getApplicationTransactionHasChangeDetails( | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| return true; | |||||
| } | |||||
| public function getApplicationTransactionChangeDetails( | |||||
| PhabricatorApplicationTransaction $xaction, | |||||
| PhabricatorUser $viewer) { | |||||
| return $xaction->renderTextCorpusChangeDetails( | |||||
| $viewer, | |||||
| $xaction->getOldValue(), | |||||
| $xaction->getNewValue()); | |||||
| } | |||||
| public function shouldHideInApplicationTransactions( | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| return ($xaction->getOldValue() === null); | |||||
| } | |||||
| public function shouldAppearInGlobalSearch() { | public function shouldAppearInGlobalSearch() { | ||||
| return true; | return true; | ||||
| } | } | ||||
| public function updateAbstractDocument( | public function updateAbstractDocument( | ||||
| PhabricatorSearchAbstractDocument $document) { | PhabricatorSearchAbstractDocument $document) { | ||||
| if (strlen($this->getValue())) { | if (strlen($this->getValue())) { | ||||
| $document->addField('plan', $this->getValue()); | $document->addField('plan', $this->getValue()); | ||||
| Show All 19 Lines | final class DifferentialTestPlanField | ||||
| public function renderPropertyViewValue(array $handles) { | public function renderPropertyViewValue(array $handles) { | ||||
| if (!strlen($this->getValue())) { | if (!strlen($this->getValue())) { | ||||
| return null; | return null; | ||||
| } | } | ||||
| return new PHUIRemarkupView($this->getViewer(), $this->getValue()); | return new PHUIRemarkupView($this->getViewer(), $this->getValue()); | ||||
| } | } | ||||
| public function getApplicationTransactionRemarkupBlocks( | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| return array($xaction->getNewValue()); | |||||
| } | |||||
| public function shouldAppearInCommitMessage() { | |||||
| return true; | |||||
| } | |||||
| public function shouldAppearInCommitMessageTemplate() { | |||||
| return true; | |||||
| } | |||||
| public function shouldOverwriteWhenCommitMessageIsEdited() { | |||||
| return true; | |||||
| } | |||||
| public function getCommitMessageLabels() { | |||||
| return array( | |||||
| 'Test Plan', | |||||
| 'Testplan', | |||||
| 'Tested', | |||||
| 'Tests', | |||||
| ); | |||||
| } | |||||
| public function validateCommitMessageValue($value) { | |||||
| if (!strlen($value) && $this->isCoreFieldRequired()) { | |||||
| throw new DifferentialFieldValidationException( | |||||
| $this->getCoreFieldRequiredErrorString()); | |||||
| } | |||||
| } | |||||
| public function shouldAppearInTransactionMail() { | public function shouldAppearInTransactionMail() { | ||||
| return true; | return true; | ||||
| } | } | ||||
| public function updateTransactionMailBody( | public function updateTransactionMailBody( | ||||
| PhabricatorMetaMTAMailBody $body, | PhabricatorMetaMTAMailBody $body, | ||||
| PhabricatorApplicationTransactionEditor $editor, | PhabricatorApplicationTransactionEditor $editor, | ||||
| array $xactions) { | array $xactions) { | ||||
| Show All 15 Lines | |||||