Changeset View
Changeset View
Standalone View
Standalone View
src/applications/packages/editor/PackagesPackageEditor.php
- This file was added.
| <?php | |||||
| final class PackagesPackageEditor | |||||
| extends PhabricatorApplicationTransactionEditor { | |||||
| public function getEditorApplicationClass() { | |||||
| return 'PhabricatorPackagesApplication'; | |||||
| } | |||||
| public function getEditorObjectsDescription() { | |||||
| return pht('Extension Package'); | |||||
| } | |||||
| public function getTransactionTypes() { | |||||
| $types = parent::getTransactionTypes(); | |||||
| $types[] = PackagesPackageTransaction::TYPE_NAME; | |||||
| $types[] = PackagesPackageTransaction::TYPE_DESCRIPTION; | |||||
| $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; | |||||
| $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY; | |||||
| return $types; | |||||
| } | |||||
| protected function getCustomTransactionOldValue( | |||||
| PhabricatorLiskDAO $object, | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| switch ($xaction->getTransactionType()) { | |||||
| case PackagesPackageTransaction::TYPE_NAME: | |||||
| return $object->getName(); | |||||
| case PackagesPackageTransaction::TYPE_DESCRIPTION: | |||||
| return $object->getDescription(); | |||||
| } | |||||
| return parent::getCustomTransactionOldValue($object, $xaction); | |||||
| } | |||||
| protected function getCustomTransactionNewValue( | |||||
| PhabricatorLiskDAO $object, | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| switch ($xaction->getTransactionType()) { | |||||
| case PackagesPackageTransaction::TYPE_NAME: | |||||
| case PackagesPackageTransaction::TYPE_DESCRIPTION: | |||||
| return $xaction->getNewValue(); | |||||
| } | |||||
| return parent::getCustomTransactionNewValue($object, $xaction); | |||||
| } | |||||
| protected function applyCustomInternalTransaction( | |||||
| PhabricatorLiskDAO $object, | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| $type = $xaction->getTransactionType(); | |||||
| switch ($type) { | |||||
| case PackagesPackageTransaction::TYPE_NAME: | |||||
| $object->setName($xaction->getNewValue()); | |||||
| return; | |||||
| case PackagesPackageTransaction::TYPE_DESCRIPTION: | |||||
| $object->setDescription($xaction->getNewValue()); | |||||
| return; | |||||
| } | |||||
| return parent::applyCustomInternalTransaction($object, $xaction); | |||||
| } | |||||
| protected function applyCustomExternalTransaction( | |||||
| PhabricatorLiskDAO $object, | |||||
| PhabricatorApplicationTransaction $xaction) { | |||||
| $type = $xaction->getTransactionType(); | |||||
| switch ($type) { | |||||
| case PackagesPackageTransaction::TYPE_NAME: | |||||
| case PackagesPackageTransaction::TYPE_DESCRIPTION: | |||||
| return; | |||||
| } | |||||
| return parent::applyCustomExternalTransaction($object, $xaction); | |||||
| } | |||||
| protected function validateTransaction( | |||||
| PhabricatorLiskDAO $object, | |||||
| $type, | |||||
| array $xactions) { | |||||
| $errors = parent::validateTransaction($object, $type, $xactions); | |||||
| switch ($type) { | |||||
| case PackagesPackageTransaction::TYPE_NAME: | |||||
| $missing = $this->validateIsEmptyTextField( | |||||
| $object->getName(), | |||||
| $xactions); | |||||
| if ($missing) { | |||||
| $error = new PhabricatorApplicationTransactionValidationError( | |||||
| $type, | |||||
| pht('Required'), | |||||
| pht('Package name is required.'), | |||||
| nonempty(last($xactions), null)); | |||||
| $error->setIsMissingFieldError(true); | |||||
| $errors[] = $error; | |||||
| } | |||||
| break; | |||||
| } | |||||
| return $errors; | |||||
| } | |||||
| protected function shouldSendMail( | |||||
| PhabricatorLiskDAO $object, | |||||
| array $xactions) { | |||||
| return true; | |||||
| } | |||||
| public function getMailTagsMap() { | |||||
| return array( | |||||
| PackagesPackageTransaction::MAILTAG_OTHER => | |||||
| pht('Other Packages activity not listed above occurs.'), | |||||
| ); | |||||
| } | |||||
| protected function buildMailTemplate(PhabricatorLiskDAO $object) { | |||||
| $id = $object->getID(); | |||||
| $name = $object->getName(); | |||||
| return id(new PhabricatorMetaMTAMail()) | |||||
| ->setSubject("Package: {$name}") | |||||
| ->addHeader('Thread-Topic', "package {$id}"); | |||||
| } | |||||
| protected function buildMailBody( | |||||
| PhabricatorLiskDAO $object, | |||||
| array $xactions) { | |||||
| $body = parent::buildMailBody($object, $xactions); | |||||
| $body->addLinkSection( | |||||
| pht('PACKAGE DETAIL'), | |||||
| PhabricatorEnv::getProductionURI($object->getURI())); | |||||
| return $body; | |||||
| } | |||||
| protected function getMailTo(PhabricatorLiskDAO $object) { | |||||
| return array(); | |||||
| } | |||||
| protected function getMailSubjectPrefix() { | |||||
| return 'Packages'; | |||||
| } | |||||
| protected function shouldPublishFeedStory( | |||||
| PhabricatorLiskDAO $object, | |||||
| array $xactions) { | |||||
| return true; | |||||
| } | |||||
| protected function supportsSearch() { | |||||
| return true; | |||||
| } | |||||
| } | |||||