diff --git a/src/applications/transactions/editor/PhabricatorEditEngineConfigurationEditor.php b/src/applications/transactions/editor/PhabricatorEditEngineConfigurationEditor.php index 320a1981b6..d394e87266 100644 --- a/src/applications/transactions/editor/PhabricatorEditEngineConfigurationEditor.php +++ b/src/applications/transactions/editor/PhabricatorEditEngineConfigurationEditor.php @@ -1,201 +1,203 @@ validateIsEmptyTextField( $object->getName(), $xactions); if ($missing) { $error = new PhabricatorApplicationTransactionValidationError( $type, pht('Required'), pht('Form name is required.'), nonempty(last($xactions), null)); $error->setIsMissingFieldError(true); $errors[] = $error; } break; case PhabricatorEditEngineConfigurationTransaction::TYPE_SUBTYPE: - $map = $object->getEngine() - ->setViewer($this->getActor()) - ->newSubtypeMap(); - foreach ($xactions as $xaction) { - $new = $xaction->getNewValue(); - - if (isset($map[$new])) { - continue; + if ($xactions) { + $map = $object->getEngine() + ->setViewer($this->getActor()) + ->newSubtypeMap(); + foreach ($xactions as $xaction) { + $new = $xaction->getNewValue(); + + if (isset($map[$new])) { + continue; + } + + $errors[] = new PhabricatorApplicationTransactionValidationError( + $type, + pht('Invalid'), + pht('Subtype "%s" is not a valid subtype.', $new), + $xaction); } - - $errors[] = new PhabricatorApplicationTransactionValidationError( - $type, - pht('Invalid'), - pht('Subtype "%s" is not a valid subtype.', $new), - $xaction); } break; } return $errors; } protected function getCustomTransactionOldValue( PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorEditEngineConfigurationTransaction::TYPE_NAME: return $object->getName(); case PhabricatorEditEngineConfigurationTransaction::TYPE_PREAMBLE; return $object->getPreamble(); case PhabricatorEditEngineConfigurationTransaction::TYPE_ORDER: return $object->getFieldOrder(); case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULT: $field_key = $xaction->getMetadataValue('field.key'); return $object->getFieldDefault($field_key); case PhabricatorEditEngineConfigurationTransaction::TYPE_LOCKS: return $object->getFieldLocks(); case PhabricatorEditEngineConfigurationTransaction::TYPE_SUBTYPE: return $object->getSubtype(); case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULTCREATE: return (int)$object->getIsDefault(); case PhabricatorEditEngineConfigurationTransaction::TYPE_ISEDIT: return (int)$object->getIsEdit(); case PhabricatorEditEngineConfigurationTransaction::TYPE_DISABLE: return (int)$object->getIsDisabled(); case PhabricatorEditEngineConfigurationTransaction::TYPE_CREATEORDER: return (int)$object->getCreateOrder(); case PhabricatorEditEngineConfigurationTransaction::TYPE_EDITORDER: return (int)$object->getEditOrder(); } } protected function getCustomTransactionNewValue( PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorEditEngineConfigurationTransaction::TYPE_NAME: case PhabricatorEditEngineConfigurationTransaction::TYPE_PREAMBLE; case PhabricatorEditEngineConfigurationTransaction::TYPE_ORDER: case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULT: case PhabricatorEditEngineConfigurationTransaction::TYPE_LOCKS: case PhabricatorEditEngineConfigurationTransaction::TYPE_SUBTYPE: return $xaction->getNewValue(); case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULTCREATE: case PhabricatorEditEngineConfigurationTransaction::TYPE_ISEDIT: case PhabricatorEditEngineConfigurationTransaction::TYPE_DISABLE: case PhabricatorEditEngineConfigurationTransaction::TYPE_CREATEORDER: case PhabricatorEditEngineConfigurationTransaction::TYPE_EDITORDER: return (int)$xaction->getNewValue(); } } protected function applyCustomInternalTransaction( PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorEditEngineConfigurationTransaction::TYPE_NAME: $object->setName($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_PREAMBLE; $object->setPreamble($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_ORDER: $object->setFieldOrder($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULT: $field_key = $xaction->getMetadataValue('field.key'); $object->setFieldDefault($field_key, $xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_LOCKS: $object->setFieldLocks($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_SUBTYPE: $object->setSubtype($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULTCREATE: $object->setIsDefault($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_ISEDIT: $object->setIsEdit($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_DISABLE: $object->setIsDisabled($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_CREATEORDER: $object->setCreateOrder($xaction->getNewValue()); return; case PhabricatorEditEngineConfigurationTransaction::TYPE_EDITORDER: $object->setEditOrder($xaction->getNewValue()); return; } return parent::applyCustomInternalTransaction($object, $xaction); } protected function applyCustomExternalTransaction( PhabricatorLiskDAO $object, PhabricatorApplicationTransaction $xaction) { switch ($xaction->getTransactionType()) { case PhabricatorEditEngineConfigurationTransaction::TYPE_NAME: case PhabricatorEditEngineConfigurationTransaction::TYPE_PREAMBLE; case PhabricatorEditEngineConfigurationTransaction::TYPE_ORDER; case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULT: case PhabricatorEditEngineConfigurationTransaction::TYPE_ISEDIT: case PhabricatorEditEngineConfigurationTransaction::TYPE_LOCKS: case PhabricatorEditEngineConfigurationTransaction::TYPE_SUBTYPE: case PhabricatorEditEngineConfigurationTransaction::TYPE_DEFAULTCREATE: case PhabricatorEditEngineConfigurationTransaction::TYPE_DISABLE: case PhabricatorEditEngineConfigurationTransaction::TYPE_CREATEORDER: case PhabricatorEditEngineConfigurationTransaction::TYPE_EDITORDER: return; } return parent::applyCustomExternalTransaction($object, $xaction); } }