Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/badges/xaction/PhabricatorBadgesBadgeQualityTransaction.php
12256 views
1
<?php
2
3
final class PhabricatorBadgesBadgeQualityTransaction
4
extends PhabricatorBadgesBadgeTransactionType {
5
6
const TRANSACTIONTYPE = 'badge.quality';
7
8
public function generateOldValue($object) {
9
return $object->getQuality();
10
}
11
12
public function applyInternalEffects($object, $value) {
13
$object->setQuality($value);
14
}
15
16
public function shouldHide() {
17
if ($this->isCreateTransaction()) {
18
return true;
19
}
20
21
return false;
22
}
23
24
public function getTitle() {
25
$old = $this->getQualityLabel($this->getOldValue());
26
$new = $this->getQualityLabel($this->getNewValue());
27
28
return pht(
29
'%s updated the quality from %s to %s.',
30
$this->renderAuthor(),
31
$old,
32
$new);
33
}
34
35
public function getTitleForFeed() {
36
$old = $this->getQualityLabel($this->getOldValue());
37
$new = $this->getQualityLabel($this->getNewValue());
38
39
return pht(
40
'%s updated the quality of %s from %s to %s.',
41
$this->renderAuthor(),
42
$this->renderObject(),
43
$old,
44
$new);
45
}
46
47
public function validateTransactions($object, array $xactions) {
48
$errors = array();
49
50
if ($this->isEmptyTextTransaction($object->getQuality(), $xactions)) {
51
$errors[] = $this->newRequiredError(
52
pht('Badge quality must be set.'));
53
}
54
55
$map = PhabricatorBadgesQuality::getQualityMap();
56
if (!$map[$object->getQuality()]) {
57
$errors[] = $this->newRequiredError(
58
pht('Badge quality is not valid.'));
59
}
60
61
return $errors;
62
}
63
64
private function getQualityLabel($quality) {
65
$map = PhabricatorBadgesQuality::getQualityMap();
66
$name = $map[$quality]['name'];
67
return $this->renderValue($name);
68
}
69
70
}
71
72