@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
at upstream/main 103 lines 2.4 kB view raw
1<?php 2 3final class DifferentialActionEmailCommand 4 extends MetaMTAEmailTransactionCommand { 5 6 private $command; 7 private $action; 8 private $aliases; 9 private $commandSummary; 10 private $commandDescription; 11 12 public function getCommand() { 13 return $this->command; 14 } 15 16 private function setCommand($command) { 17 $this->command = $command; 18 return $this; 19 } 20 21 private function setAction($action) { 22 $this->action = $action; 23 return $this; 24 } 25 26 private function getAction() { 27 return $this->action; 28 } 29 30 private function setCommandAliases(array $aliases) { 31 $this->aliases = $aliases; 32 return $this; 33 } 34 35 public function getCommandAliases() { 36 return $this->aliases; 37 } 38 39 public function setCommandSummary($command_summary) { 40 $this->commandSummary = $command_summary; 41 return $this; 42 } 43 44 public function getCommandSummary() { 45 return $this->commandSummary; 46 } 47 48 public function setCommandDescription($command_description) { 49 $this->commandDescription = $command_description; 50 return $this; 51 } 52 53 public function getCommandDescription() { 54 return $this->commandDescription; 55 } 56 57 public function getCommandObjects() { 58 $actions = DifferentialRevisionActionTransaction::loadAllActions(); 59 $actions = msortv($actions, 'getRevisionActionOrderVector'); 60 61 $objects = array(); 62 foreach ($actions as $action) { 63 $keyword = $action->getCommandKeyword(); 64 if ($keyword === null) { 65 continue; 66 } 67 68 $aliases = $action->getCommandAliases(); 69 $summary = $action->getCommandSummary(); 70 71 $object = id(new self()) 72 ->setCommand($keyword) 73 ->setCommandAliases($aliases) 74 ->setAction($action->getTransactionTypeConstant()) 75 ->setCommandSummary($summary); 76 77 $objects[] = $object; 78 } 79 80 return $objects; 81 } 82 83 public function isCommandSupportedForObject( 84 PhabricatorApplicationTransactionInterface $object) { 85 return ($object instanceof DifferentialRevision); 86 } 87 88 public function buildTransactions( 89 PhabricatorUser $viewer, 90 PhabricatorApplicationTransactionInterface $object, 91 PhabricatorMetaMTAReceivedMail $mail, 92 $command, 93 array $argv) { 94 $xactions = array(); 95 96 $xactions[] = $object->getApplicationTransactionTemplate() 97 ->setTransactionType($this->getAction()) 98 ->setNewValue(true); 99 100 return $xactions; 101 } 102 103}