Generate file attachment transactions for explicit Remarkup attachments on common...
[phabricator.git] / src / applications / differential / xaction / DifferentialRevisionReclaimTransaction.php
blob6f9d7b79bfc1f243d05a3e4d1c51f9bdc2e6e44b
1 <?php
3 final class DifferentialRevisionReclaimTransaction
4 extends DifferentialRevisionActionTransaction {
6 const TRANSACTIONTYPE = 'differential.revision.reclaim';
7 const ACTIONKEY = 'reclaim';
9 protected function getRevisionActionLabel(
10 DifferentialRevision $revision,
11 PhabricatorUser $viewer) {
12 return pht('Reclaim Revision');
15 protected function getRevisionActionDescription(
16 DifferentialRevision $revision,
17 PhabricatorUser $viewer) {
18 return pht('This revision will be reclaimed and reopened.');
21 public function getIcon() {
22 return 'fa-bullhorn';
25 public function getColor() {
26 return 'sky';
29 protected function getRevisionActionOrder() {
30 return 600;
33 public function getActionName() {
34 return pht('Reclaimed');
37 public function getCommandKeyword() {
38 return 'reclaim';
41 public function getCommandAliases() {
42 return array();
45 public function getCommandSummary() {
46 return pht('Reclaim a revision.');
49 public function generateOldValue($object) {
50 return !$object->isAbandoned();
53 public function applyInternalEffects($object, $value) {
54 if ($object->getShouldBroadcast()) {
55 $new_status = DifferentialRevisionStatus::NEEDS_REVIEW;
56 } else {
57 $new_status = DifferentialRevisionStatus::DRAFT;
59 $object->setModernRevisionStatus($new_status);
62 protected function validateAction($object, PhabricatorUser $viewer) {
63 if (!$object->isAbandoned()) {
64 throw new Exception(
65 pht(
66 'You can not reclaim this revision because it has not been '.
67 'abandoned. Only abandoned revisions can be reclaimed.'));
70 if (!$this->isViewerRevisionAuthor($object, $viewer)) {
71 throw new Exception(
72 pht(
73 'You can not reclaim this revision because you are not the '.
74 'revision author. You can only reclaim revisions you own.'));
78 public function getTitle() {
79 return pht(
80 '%s reclaimed this revision.',
81 $this->renderAuthor());
84 public function getTitleForFeed() {
85 return pht(
86 '%s reclaimed %s.',
87 $this->renderAuthor(),
88 $this->renderObject());
91 public function getTransactionTypeForConduit($xaction) {
92 return 'reclaim';
95 public function getFieldValuesForConduit($object, $data) {
96 return array();