Page MenuHomePhabricator

D17133.id.diff
No OneTemporary

D17133.id.diff

diff --git a/src/applications/differential/command/DifferentialActionEmailCommand.php b/src/applications/differential/command/DifferentialActionEmailCommand.php
--- a/src/applications/differential/command/DifferentialActionEmailCommand.php
+++ b/src/applications/differential/command/DifferentialActionEmailCommand.php
@@ -55,65 +55,28 @@
}
public function getCommandObjects() {
- $actions = array(
- DifferentialAction::ACTION_REJECT => 'request',
- DifferentialAction::ACTION_ABANDON => 'abandon',
- DifferentialAction::ACTION_RECLAIM => 'reclaim',
- DifferentialAction::ACTION_RESIGN => 'resign',
- DifferentialAction::ACTION_RETHINK => 'planchanges',
- DifferentialAction::ACTION_CLAIM => 'commandeer',
- );
-
- if (PhabricatorEnv::getEnvConfig('differential.enable-email-accept')) {
- $actions[DifferentialAction::ACTION_ACCEPT] = 'accept';
- }
-
- $aliases = array(
- DifferentialAction::ACTION_REJECT => array('reject'),
- DifferentialAction::ACTION_CLAIM => array('claim'),
- DifferentialAction::ACTION_RETHINK => array('rethink'),
- );
-
- $summaries = array(
- DifferentialAction::ACTION_REJECT =>
- pht('Request changes to a revision.'),
- DifferentialAction::ACTION_ABANDON =>
- pht('Abandon a revision.'),
- DifferentialAction::ACTION_RECLAIM =>
- pht('Reclaim a revision.'),
- DifferentialAction::ACTION_RESIGN =>
- pht('Resign from a revision.'),
- DifferentialAction::ACTION_RETHINK =>
- pht('Plan changes to a revision.'),
- DifferentialAction::ACTION_CLAIM =>
- pht('Commandeer a revision.'),
- DifferentialAction::ACTION_ACCEPT =>
- pht('Accept a revision.'),
- );
-
- $descriptions = array(
-
- );
+ $actions = DifferentialRevisionActionTransaction::loadAllActions();
+ $actions = msort($actions, 'getRevisionActionOrderVector');
$objects = array();
- foreach ($actions as $action => $keyword) {
- $object = id(new DifferentialActionEmailCommand())
- ->setCommand($keyword)
- ->setAction($action)
- ->setCommandSummary($summaries[$action]);
-
- if (isset($aliases[$action])) {
- $object->setCommandAliases($aliases[$action]);
+ foreach ($actions as $action) {
+ $keyword = $action->getCommandKeyword();
+ if ($keyword === null) {
+ continue;
}
- if (isset($descriptions[$action])) {
- $object->setCommandDescription($descriptions[$action]);
- }
+ $aliases = $action->getCommandAliases();
+ $summary = $action->getCommandSummary();
+
+ $object = id(new self())
+ ->setCommand($keyword)
+ ->setCommandAliases($aliases)
+ ->setAction($action->getTransactionTypeConstant())
+ ->setCommandSummary($summary);
$objects[] = $object;
}
-
return $objects;
}
@@ -131,8 +94,8 @@
$xactions = array();
$xactions[] = $object->getApplicationTransactionTemplate()
- ->setTransactionType(DifferentialTransaction::TYPE_ACTION)
- ->setNewValue($this->getAction());
+ ->setTransactionType($this->getAction())
+ ->setNewValue(true);
return $xactions;
}
diff --git a/src/applications/differential/xaction/DifferentialRevisionAbandonTransaction.php b/src/applications/differential/xaction/DifferentialRevisionAbandonTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionAbandonTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionAbandonTransaction.php
@@ -26,6 +26,18 @@
return 500;
}
+ public function getCommandKeyword() {
+ return 'abandon';
+ }
+
+ public function getCommandAliases() {
+ return array();
+ }
+
+ public function getCommandSummary() {
+ return pht('Abandon a revision.');
+ }
+
public function generateOldValue($object) {
return $object->isAbandoned();
}
diff --git a/src/applications/differential/xaction/DifferentialRevisionAcceptTransaction.php b/src/applications/differential/xaction/DifferentialRevisionAcceptTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionAcceptTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionAcceptTransaction.php
@@ -26,6 +26,24 @@
return 500;
}
+ public function getCommandKeyword() {
+ $accept_key = 'differential.enable-email-accept';
+ $allow_email_accept = PhabricatorEnv::getEnvConfig($accept_key);
+ if (!$allow_email_accept) {
+ return null;
+ }
+
+ return 'accept';
+ }
+
+ public function getCommandAliases() {
+ return array();
+ }
+
+ public function getCommandSummary() {
+ return pht('Accept a revision.');
+ }
+
public function generateOldValue($object) {
$actor = $this->getActor();
return $this->isViewerAcceptingReviewer($object, $actor);
diff --git a/src/applications/differential/xaction/DifferentialRevisionActionTransaction.php b/src/applications/differential/xaction/DifferentialRevisionActionTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionActionTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionActionTransaction.php
@@ -19,6 +19,18 @@
abstract protected function validateAction($object, PhabricatorUser $viewer);
abstract protected function getRevisionActionLabel();
+ public function getCommandKeyword() {
+ return null;
+ }
+
+ public function getCommandAliases() {
+ return array();
+ }
+
+ public function getCommandSummary() {
+ return null;
+ }
+
protected function getRevisionActionOrder() {
return 1000;
}
diff --git a/src/applications/differential/xaction/DifferentialRevisionCommandeerTransaction.php b/src/applications/differential/xaction/DifferentialRevisionCommandeerTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionCommandeerTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionCommandeerTransaction.php
@@ -26,6 +26,20 @@
return 700;
}
+ public function getCommandKeyword() {
+ return 'commandeer';
+ }
+
+ public function getCommandAliases() {
+ return array(
+ 'claim',
+ );
+ }
+
+ public function getCommandSummary() {
+ return pht('Commadeer a revision.');
+ }
+
public function generateOldValue($object) {
return $object->getAuthorPHID();
}
diff --git a/src/applications/differential/xaction/DifferentialRevisionPlanChangesTransaction.php b/src/applications/differential/xaction/DifferentialRevisionPlanChangesTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionPlanChangesTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionPlanChangesTransaction.php
@@ -27,6 +27,20 @@
return 200;
}
+ public function getCommandKeyword() {
+ return 'planchanges';
+ }
+
+ public function getCommandAliases() {
+ return array(
+ 'rethink',
+ );
+ }
+
+ public function getCommandSummary() {
+ return pht('Plan changes to a revision.');
+ }
+
public function generateOldValue($object) {
$status_planned = ArcanistDifferentialRevisionStatus::CHANGES_PLANNED;
return ($object->getStatus() == $status_planned);
diff --git a/src/applications/differential/xaction/DifferentialRevisionReclaimTransaction.php b/src/applications/differential/xaction/DifferentialRevisionReclaimTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionReclaimTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionReclaimTransaction.php
@@ -26,6 +26,18 @@
return 600;
}
+ public function getCommandKeyword() {
+ return 'reclaim';
+ }
+
+ public function getCommandAliases() {
+ return array();
+ }
+
+ public function getCommandSummary() {
+ return pht('Reclaim a revision.');
+ }
+
public function generateOldValue($object) {
return !$object->isAbandoned();
}
diff --git a/src/applications/differential/xaction/DifferentialRevisionRejectTransaction.php b/src/applications/differential/xaction/DifferentialRevisionRejectTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionRejectTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionRejectTransaction.php
@@ -26,6 +26,20 @@
return 600;
}
+ public function getCommandKeyword() {
+ return 'request';
+ }
+
+ public function getCommandAliases() {
+ return array(
+ 'reject',
+ );
+ }
+
+ public function getCommandSummary() {
+ return pht('Request changes to a revision.');
+ }
+
public function generateOldValue($object) {
$actor = $this->getActor();
return $this->isViewerRejectingReviewer($object, $actor);
diff --git a/src/applications/differential/xaction/DifferentialRevisionResignTransaction.php b/src/applications/differential/xaction/DifferentialRevisionResignTransaction.php
--- a/src/applications/differential/xaction/DifferentialRevisionResignTransaction.php
+++ b/src/applications/differential/xaction/DifferentialRevisionResignTransaction.php
@@ -26,6 +26,18 @@
return 700;
}
+ public function getCommandKeyword() {
+ return 'resign';
+ }
+
+ public function getCommandAliases() {
+ return array();
+ }
+
+ public function getCommandSummary() {
+ return pht('Resign from a revision.');
+ }
+
public function generateOldValue($object) {
$actor = $this->getActor();
return !$this->isViewerAnyReviewer($object, $actor);

File Metadata

Mime Type
text/plain
Expires
Mar 15 2025, 10:57 PM (4 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7226739
Default Alt Text
D17133.id.diff (9 KB)

Event Timeline