mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-22 23:02:42 +01:00
Add useful text descriptions to edge transactions
Summary: See D2906. This just adds text so they render pretty. Test Plan: Got pretty emails and rendered transactions. {F13706} Reviewers: btrahan, davidreuss Reviewed By: btrahan CC: aran Differential Revision: https://secure.phabricator.com/D2907
This commit is contained in:
parent
9f4cfd40bc
commit
bda5c670bc
2 changed files with 176 additions and 11 deletions
|
@ -297,6 +297,23 @@ final class ManiphestTransactionDetailView extends ManiphestView {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return $title."\n".$links;
|
||||||
|
case ManiphestTransactionType::TYPE_EDGE:
|
||||||
|
$add = array_diff_key($new, $old);
|
||||||
|
if (!$add) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$links = array();
|
||||||
|
foreach ($add as $phid => $ignored) {
|
||||||
|
$handle = $handles[$phid];
|
||||||
|
$links[] = ' '.PhabricatorEnv::getProductionURI($handle->getURI());
|
||||||
|
}
|
||||||
|
$links = implode("\n", $links);
|
||||||
|
|
||||||
|
$edge_type = $transaction->getMetadataValue('edge:type');
|
||||||
|
$title = $this->getEdgeEmailTitle($edge_type, $add);
|
||||||
|
|
||||||
return $title."\n".$links;
|
return $title."\n".$links;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -386,6 +403,23 @@ final class ManiphestTransactionDetailView extends ManiphestView {
|
||||||
'removed: '.$this->renderHandles($removed);
|
'removed: '.$this->renderHandles($removed);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case ManiphestTransactionType::TYPE_EDGE:
|
||||||
|
$edge_type = $transaction->getMetadataValue('edge:type');
|
||||||
|
|
||||||
|
$add = array_diff_key($new, $old);
|
||||||
|
$rem = array_diff_key($old, $new);
|
||||||
|
|
||||||
|
if ($add && !$rem) {
|
||||||
|
$verb = $this->getEdgeAddVerb($edge_type);
|
||||||
|
$desc = $this->getEdgeAddList($edge_type, $add);
|
||||||
|
} else if ($rem && !$add) {
|
||||||
|
$verb = $this->getEdgeRemVerb($edge_type);
|
||||||
|
$desc = $this->getEdgeRemList($edge_type, $rem);
|
||||||
|
} else {
|
||||||
|
$verb = $this->getEdgeEditVerb($edge_type);
|
||||||
|
$desc = $this->getEdgeEditList($edge_type, $add, $rem);
|
||||||
|
}
|
||||||
|
break;
|
||||||
case ManiphestTransactionType::TYPE_PROJECTS:
|
case ManiphestTransactionType::TYPE_PROJECTS:
|
||||||
$added = array_diff($new, $old);
|
$added = array_diff($new, $old);
|
||||||
$removed = array_diff($old, $new);
|
$removed = array_diff($old, $new);
|
||||||
|
@ -550,17 +584,6 @@ final class ManiphestTransactionDetailView extends ManiphestView {
|
||||||
return array($verb, $desc, $classes);
|
return array($verb, $desc, $classes);
|
||||||
}
|
}
|
||||||
|
|
||||||
private function getAttachName($attach_type, $count) {
|
|
||||||
switch ($attach_type) {
|
|
||||||
case PhabricatorPHIDConstants::PHID_TYPE_DREV:
|
|
||||||
return pht('Differential Revision(s)', $count);
|
|
||||||
case PhabricatorPHIDConstants::PHID_TYPE_FILE:
|
|
||||||
return pht('file(s)', $count);
|
|
||||||
case PhabricatorPHIDConstants::PHID_TYPE_TASK:
|
|
||||||
return pht('Maniphest Task(s)', $count);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private function renderFullSummary($transaction) {
|
private function renderFullSummary($transaction) {
|
||||||
switch ($transaction->getTransactionType()) {
|
switch ($transaction->getTransactionType()) {
|
||||||
case ManiphestTransactionType::TYPE_DESCRIPTION:
|
case ManiphestTransactionType::TYPE_DESCRIPTION:
|
||||||
|
@ -626,4 +649,128 @@ final class ManiphestTransactionDetailView extends ManiphestView {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* -( Strings )------------------------------------------------------------ */
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getAttachName($attach_type, $count) {
|
||||||
|
switch ($attach_type) {
|
||||||
|
case PhabricatorPHIDConstants::PHID_TYPE_DREV:
|
||||||
|
return pht('Differential Revision(s)', $count);
|
||||||
|
case PhabricatorPHIDConstants::PHID_TYPE_FILE:
|
||||||
|
return pht('file(s)', $count);
|
||||||
|
case PhabricatorPHIDConstants::PHID_TYPE_TASK:
|
||||||
|
return pht('Maniphest Task(s)', $count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function getEdgeEmailTitle($type, $count) {
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht('ATTACHED %d COMMIT(S)', $count);
|
||||||
|
default:
|
||||||
|
return pht('ATTACHED %d OBJECT(S)', $count);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getEdgeAddVerb($type) {
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht('Added Commit');
|
||||||
|
default:
|
||||||
|
return pht('Added Object');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getEdgeRemVerb($type) {
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht('Removed Commit');
|
||||||
|
default:
|
||||||
|
return pht('Removed Object');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getEdgeEditVerb($type) {
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht('Changed Commits');
|
||||||
|
default:
|
||||||
|
return pht('Changed Objects');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getEdgeAddList($type, array $add) {
|
||||||
|
$list = $this->renderHandles(array_keys($add));
|
||||||
|
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht('added %d commit(s): %s', $add, $list);
|
||||||
|
default:
|
||||||
|
return pht('added %d object(s): %s', $add, $list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getEdgeRemList($type, array $rem) {
|
||||||
|
$list = $this->renderHandles(array_keys($rem));
|
||||||
|
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht('removed %d commit(s): %s', $rem, $list);
|
||||||
|
default:
|
||||||
|
return pht('removed %d object(s): %s', $rem, $list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @task strings
|
||||||
|
*/
|
||||||
|
private function getEdgeEditList($type, array $add, array $rem) {
|
||||||
|
$add_list = $this->renderHandles(array_keys($add));
|
||||||
|
$rem_list = $this->renderHandles(array_keys($rem));
|
||||||
|
|
||||||
|
switch ($type) {
|
||||||
|
case PhabricatorEdgeConfig::TYPE_TASK_HAS_COMMIT:
|
||||||
|
return pht(
|
||||||
|
'changed %d commit(s), added %d: %s; removed %d: %s',
|
||||||
|
count($add) + count($rem),
|
||||||
|
$add,
|
||||||
|
$add_list,
|
||||||
|
$rem,
|
||||||
|
$rem_list);
|
||||||
|
default:
|
||||||
|
return pht(
|
||||||
|
'changed %d object(s), added %d: %s; removed %d: %s',
|
||||||
|
count($add) + count($rem),
|
||||||
|
$add,
|
||||||
|
$add_list,
|
||||||
|
$rem,
|
||||||
|
$rem_list);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,24 @@ abstract class PhabricatorBaseEnglishTranslation
|
||||||
'COMMIT(S)' => array('COMMIT', 'COMMITS'),
|
'COMMIT(S)' => array('COMMIT', 'COMMITS'),
|
||||||
|
|
||||||
'%d line(s)' => array('%d line', '%d lines'),
|
'%d line(s)' => array('%d line', '%d lines'),
|
||||||
|
|
||||||
|
'added %d commit(s): %s' => array(
|
||||||
|
'added commits: %2$s',
|
||||||
|
'added commit: %2$s',
|
||||||
|
),
|
||||||
|
|
||||||
|
'removed %d commit(s): %s' => array(
|
||||||
|
'removed commits: %2$s',
|
||||||
|
'removed commit: %2$s',
|
||||||
|
),
|
||||||
|
|
||||||
|
'changed %d commit(s), added %d: %s; removed %d: %s' =>
|
||||||
|
'changed commits, added: %3$s; removed: %5$s',
|
||||||
|
|
||||||
|
'ATTACHED %d COMMIT(S)' => array(
|
||||||
|
'ATTACHED COMMITS',
|
||||||
|
'ATTACHED COMMIT',
|
||||||
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue