Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/differential/xaction/DifferentialRevisionStatusTransaction.php
12256 views
1
<?php
2
3
final class DifferentialRevisionStatusTransaction
4
extends DifferentialRevisionTransactionType {
5
6
const TRANSACTIONTYPE = 'differential.revision.status';
7
8
public function generateOldValue($object) {
9
return $object->getModernRevisionStatus();
10
}
11
12
public function applyInternalEffects($object, $value) {
13
$object->setModernRevisionStatus($value);
14
}
15
16
public function getTitle() {
17
$status = $this->newStatusObject();
18
19
if ($status->isAccepted()) {
20
return pht('This revision is now accepted and ready to land.');
21
}
22
23
if ($status->isNeedsRevision()) {
24
return pht('This revision now requires changes to proceed.');
25
}
26
27
if ($status->isNeedsReview()) {
28
return pht('This revision now requires review to proceed.');
29
}
30
31
return null;
32
}
33
34
public function getTitleForFeed() {
35
$status = $this->newStatusObject();
36
37
if ($status->isAccepted()) {
38
return pht(
39
'%s is now accepted and ready to land.',
40
$this->renderObject());
41
}
42
43
if ($status->isNeedsRevision()) {
44
return pht(
45
'%s now requires changes to proceed.',
46
$this->renderObject());
47
}
48
49
if ($status->isNeedsReview()) {
50
return pht(
51
'%s now requires review to proceed.',
52
$this->renderObject());
53
}
54
55
return null;
56
}
57
58
public function getIcon() {
59
$status = $this->newStatusObject();
60
return $status->getTimelineIcon();
61
}
62
63
public function getColor() {
64
$status = $this->newStatusObject();
65
return $status->getTimelineColor();
66
}
67
68
private function newStatusObject() {
69
$new = $this->getNewValue();
70
return DifferentialRevisionStatus::newForStatus($new);
71
}
72
73
public function getTransactionTypeForConduit($xaction) {
74
return 'status';
75
}
76
77
public function getFieldValuesForConduit($xaction, $data) {
78
return array(
79
'old' => $xaction->getOldValue(),
80
'new' => $xaction->getNewValue(),
81
);
82
}
83
84
}
85
86