Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/paste/xaction/PhabricatorPasteLanguageTransaction.php
12241 views
1
<?php
2
3
final class PhabricatorPasteLanguageTransaction
4
extends PhabricatorPasteTransactionType {
5
6
const TRANSACTIONTYPE = 'paste.language';
7
8
public function generateOldValue($object) {
9
return $object->getLanguage();
10
}
11
12
public function applyInternalEffects($object, $value) {
13
$object->setLanguage($value);
14
}
15
16
private function renderLanguageValue($value) {
17
if (!strlen($value)) {
18
return $this->renderValue(pht('autodetect'));
19
} else {
20
return $this->renderValue($value);
21
}
22
}
23
24
public function getTitle() {
25
return pht(
26
"%s updated the paste's language from %s to %s.",
27
$this->renderAuthor(),
28
$this->renderLanguageValue($this->getOldValue()),
29
$this->renderLanguageValue($this->getNewValue()));
30
}
31
32
public function getTitleForFeed() {
33
return pht(
34
'%s updated the language for %s from %s to %s.',
35
$this->renderAuthor(),
36
$this->renderObject(),
37
$this->renderLanguageValue($this->getOldValue()),
38
$this->renderLanguageValue($this->getNewValue()));
39
}
40
41
public function validateTransactions($object, array $xactions) {
42
$errors = array();
43
44
foreach ($xactions as $xaction) {
45
$new = $xaction->getNewValue();
46
47
if ($new !== null && !strlen($new)) {
48
$errors[] = $this->newInvalidError(
49
pht('Paste language must be null or a nonempty string.'),
50
$xaction);
51
}
52
}
53
54
return $errors;
55
}
56
57
}
58
59