setFieldError(null); $errors = parent::validateApplicationTransactions( $editor, $type, $xactions); $transaction = null; foreach ($xactions as $xaction) { $value = $xaction->getNewValue(); if ($this->isCoreFieldRequired()) { if ($this->isCoreFieldValueEmpty($value)) { $error = new PhabricatorApplicationTransactionValidationError( $type, pht('Required'), $this->getCoreFieldRequiredErrorString(), $xaction); $error->setIsMissingFieldError(true); $errors[] = $error; $this->setFieldError(pht('Required')); } } } return $errors; } public function canDisableField() { return false; } public function shouldAppearInApplicationTransactions() { return true; } public function shouldAppearInEditView() { return true; } public function readValueFromObject(PhabricatorCustomFieldInterface $object) { if ($this->isCoreFieldRequired()) { $this->setFieldError(true); } $this->setValue($this->readValueFromRevision($object)); } public function getOldValueForApplicationTransactions() { return $this->readValueFromRevision($this->getObject()); } public function getNewValueForApplicationTransactions() { return $this->getValue(); } public function applyApplicationTransactionInternalEffects( PhabricatorApplicationTransaction $xaction) { $this->writeValueToRevision($this->getObject(), $xaction->getNewValue()); } public function setFieldError($field_error) { $this->fieldError = $field_error; return $this; } public function getFieldError() { return $this->fieldError; } public function setValue($value) { $this->value = $value; return $this; } public function getValue() { return $this->value; } public function readValueFromCommitMessage($value) { $this->setValue($value); return $this; } public function renderCommitMessageValue(array $handles) { return $this->getValue(); } public function getConduitDictionaryValue() { return $this->getValue(); } }