diff --git a/src/applications/differential/editor/DifferentialTransactionEditor.php b/src/applications/differential/editor/DifferentialTransactionEditor.php --- a/src/applications/differential/editor/DifferentialTransactionEditor.php +++ b/src/applications/differential/editor/DifferentialTransactionEditor.php @@ -896,6 +896,22 @@ return $phids; } + protected function getMailAction( + PhabricatorLiskDAO $object, + array $xactions) { + $action = parent::getMailAction($object, $xactions); + + $strongest = $this->getStrongestAction($object, $xactions); + switch ($strongest->getTransactionType()) { + case DifferentialTransaction::TYPE_UPDATE: + $count = new PhutilNumber($object->getLineCount()); + $action = pht('%s, %s line(s)', $action, $count); + break; + } + + return $action; + } + protected function getMailSubjectPrefix() { return PhabricatorEnv::getEnvConfig('metamta.differential.subject-prefix'); } diff --git a/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php b/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php --- a/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php +++ b/src/applications/differential/lipsum/PhabricatorDifferentialRevisionTestDataGenerator.php @@ -6,24 +6,34 @@ public function generate() { $author = $this->loadPhabrictorUser(); $authorPHID = $author->getPHID(); + $revision = DifferentialRevision::initializeNewRevision($author); + $revision->attachReviewerStatus(array()); + $revision->attachActiveDiff(null); + + // This could be a bit richer and more formal than it is. $revision->setTitle($this->generateTitle()); $revision->setSummary($this->generateDescription()); $revision->setTestPlan($this->generateDescription()); - $revision->loadRelationships(); - $aux_fields = $this->loadAuxiliaryFields($author, $revision); + $diff = $this->generateDiff($author); - // Add Diff - $editor = new DifferentialRevisionEditor($revision); - $editor->setActor($author); - $editor->addDiff($diff, $this->generateDescription()); - $editor->setAuxiliaryFields($aux_fields); - $editor->save(); - // TODO: After T2222, it would be nice to revisit this and expand the - // functionality. + $xactions = array(); + + $xactions[] = id(new DifferentialTransaction()) + ->setTransactionType(DifferentialTransaction::TYPE_UPDATE) + ->setNewValue($diff->getPHID()); + + $content_source = PhabricatorContentSource::newForSource( + PhabricatorContentSource::SOURCE_LIPSUM, + array()); - return $revision->save(); + id(new DifferentialTransactionEditor()) + ->setActor($author) + ->setContentSource($content_source) + ->applyTransactions($revision, $xactions); + + return $revision; } public function getCCPHIDs() { @@ -92,20 +102,4 @@ return implode($newcode2, "\n"); } - private function loadAuxiliaryFields($user, DifferentialRevision $revision) { - $aux_fields = DifferentialFieldSelector::newSelector() - ->getFieldSpecifications(); - foreach ($aux_fields as $key => $aux_field) { - $aux_field->setRevision($revision); - if (!$aux_field->shouldAppearOnEdit()) { - unset($aux_fields[$key]); - } else { - $aux_field->setUser($user); - } - } - return DifferentialAuxiliaryField::loadFromStorage( - $revision, - $aux_fields); - } - } diff --git a/src/applications/differential/storage/DifferentialTransaction.php b/src/applications/differential/storage/DifferentialTransaction.php --- a/src/applications/differential/storage/DifferentialTransaction.php +++ b/src/applications/differential/storage/DifferentialTransaction.php @@ -105,7 +105,12 @@ case self::TYPE_INLINE: return pht('Commented On'); case self::TYPE_UPDATE: - return pht('Updated'); + $old = $this->getOldValue(); + if ($old === null) { + return pht('Request'); + } else { + return pht('Updated'); + } case self::TYPE_ACTION: $map = array( DifferentialAction::ACTION_ACCEPT => pht('Accepted'), diff --git a/src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php b/src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php --- a/src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php +++ b/src/applications/lipsum/management/PhabricatorLipsumGenerateWorkflow.php @@ -6,7 +6,7 @@ protected function didConstruct() { $this ->setName('generate') - ->setExamples('**generate** __key__') + ->setExamples('**generate**') ->setSynopsis('Generate some lipsum.') ->setArguments( array( @@ -62,20 +62,16 @@ while (true) { $type = $supported_types[array_rand($supported_types)]; $admin = $this->getViewer(); - try { - $taskgen = newv($type, array()); - $object = $taskgen->generate(); - $handle = id(new PhabricatorHandleQuery()) - ->setViewer($admin) - ->withPHIDs(array($object->getPHID())) - ->executeOne(); - echo "Generated ".$handle->getTypeName().": ". - $handle->getFullName()."\n"; - } catch (PhutilMissingSymbolException $ex) { - throw new PhutilArgumentUsageException( - "Cannot generate content of type ".$type. - " because the class does not exist."); - } + + $taskgen = newv($type, array()); + $object = $taskgen->generate(); + $handle = id(new PhabricatorHandleQuery()) + ->setViewer($admin) + ->withPHIDs(array($object->getPHID())) + ->executeOne(); + echo "Generated ".$handle->getTypeName().": ". + $handle->getFullName()."\n"; + usleep(200000); } } diff --git a/src/applications/metamta/contentsource/PhabricatorContentSource.php b/src/applications/metamta/contentsource/PhabricatorContentSource.php --- a/src/applications/metamta/contentsource/PhabricatorContentSource.php +++ b/src/applications/metamta/contentsource/PhabricatorContentSource.php @@ -13,6 +13,7 @@ const SOURCE_HERALD = 'herald'; const SOURCE_LEGACY = 'legacy'; const SOURCE_DAEMON = 'daemon'; + const SOURCE_LIPSUM = 'lipsum'; private $source; private $params = array(); @@ -74,6 +75,7 @@ self::SOURCE_LEGACY => pht('Legacy'), self::SOURCE_HERALD => pht('Herald'), self::SOURCE_DAEMON => pht('Daemons'), + self::SOURCE_LIPSUM => pht('Lipsum'), self::SOURCE_UNKNOWN => pht('Old World'), ); } diff --git a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php --- a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php +++ b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php @@ -1649,8 +1649,7 @@ $body = $this->buildMailBody($object, $xactions); $mail_tags = $this->getMailTags($object, $xactions); - - $action = $this->getStrongestAction($object, $xactions)->getActionName(); + $action = $this->getMailAction($object, $xactions); $template ->setFrom($this->requireActor()->getPHID()) @@ -1745,6 +1744,15 @@ return array_mergev($tags); } + /** + * @task mail + */ + protected function getMailAction( + PhabricatorLiskDAO $object, + array $xactions) { + return $this->getStrongestAction($object, $xactions)->getActionName(); + } + /** * @task mail diff --git a/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php b/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php --- a/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php +++ b/src/infrastructure/internationalization/translation/PhabricatorBaseEnglishTranslation.php @@ -851,6 +851,11 @@ '%d older changes are hidden.', ), + '%s, %d line(s)' => array( + '%s, %d line', + '%s, %d lines', + ), + ); }