Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/owners/xaction/PhabricatorOwnersPackageNameTransaction.php
12256 views
1
<?php
2
3
final class PhabricatorOwnersPackageNameTransaction
4
extends PhabricatorOwnersPackageTransactionType {
5
6
const TRANSACTIONTYPE = 'owners.name';
7
8
public function generateOldValue($object) {
9
return $object->getName();
10
}
11
12
public function validateTransactions($object, array $xactions) {
13
$errors = array();
14
15
$missing = $this->isEmptyTextTransaction(
16
$object->getName(),
17
$xactions);
18
19
if ($missing) {
20
$errors[] = $this->newRequiredError(
21
pht('Package name is required.'),
22
nonempty(last($xactions), null));
23
}
24
25
foreach ($xactions as $xaction) {
26
$new = $xaction->getNewValue();
27
if (preg_match('([,!])', $new)) {
28
$errors[] = $this->newInvalidError(
29
pht(
30
'Package names may not contain commas (",") or exclamation '.
31
'marks ("!"). These characters are ambiguous when package '.
32
'names are parsed from the command line.'),
33
$xaction);
34
}
35
}
36
37
return $errors;
38
}
39
40
public function applyInternalEffects($object, $value) {
41
$object->setName($value);
42
}
43
44
public function getTitle() {
45
return pht(
46
'%s renamed this package from %s to %s.',
47
$this->renderAuthor(),
48
$this->renderOldValue(),
49
$this->renderNewValue());
50
}
51
52
}
53
54