Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/phabricator
Path: blob/master/src/applications/paste/editor/PhabricatorPasteEditor.php
12241 views
1
<?php
2
3
final class PhabricatorPasteEditor
4
extends PhabricatorApplicationTransactionEditor {
5
6
private $newPasteTitle;
7
8
public function getNewPasteTitle() {
9
return $this->newPasteTitle;
10
}
11
12
public function getEditorApplicationClass() {
13
return 'PhabricatorPasteApplication';
14
}
15
16
public function getEditorObjectsDescription() {
17
return pht('Pastes');
18
}
19
20
public function getCreateObjectTitle($author, $object) {
21
return pht('%s created this paste.', $author);
22
}
23
24
public function getCreateObjectTitleForFeed($author, $object) {
25
return pht('%s created %s.', $author, $object);
26
}
27
28
public function getTransactionTypes() {
29
$types = parent::getTransactionTypes();
30
31
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
32
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
33
$types[] = PhabricatorTransactions::TYPE_COMMENT;
34
35
return $types;
36
}
37
38
protected function expandTransactions(
39
PhabricatorLiskDAO $object,
40
array $xactions) {
41
42
$new_title = $object->getTitle();
43
foreach ($xactions as $xaction) {
44
$type = $xaction->getTransactionType();
45
if ($type === PhabricatorPasteTitleTransaction::TRANSACTIONTYPE) {
46
$new_title = $xaction->getNewValue();
47
}
48
}
49
$this->newPasteTitle = $new_title;
50
51
return parent::expandTransactions($object, $xactions);
52
}
53
54
protected function shouldSendMail(
55
PhabricatorLiskDAO $object,
56
array $xactions) {
57
58
if ($this->getIsNewObject()) {
59
return false;
60
}
61
62
return true;
63
}
64
65
protected function getMailSubjectPrefix() {
66
return pht('[Paste]');
67
}
68
69
protected function getMailTo(PhabricatorLiskDAO $object) {
70
return array(
71
$object->getAuthorPHID(),
72
$this->getActingAsPHID(),
73
);
74
}
75
76
public function getMailTagsMap() {
77
return array(
78
PhabricatorPasteTransaction::MAILTAG_CONTENT =>
79
pht('Paste title, language or text changes.'),
80
PhabricatorPasteTransaction::MAILTAG_COMMENT =>
81
pht('Someone comments on a paste.'),
82
PhabricatorPasteTransaction::MAILTAG_OTHER =>
83
pht('Other paste activity not listed above occurs.'),
84
);
85
}
86
87
protected function buildReplyHandler(PhabricatorLiskDAO $object) {
88
return id(new PasteReplyHandler())
89
->setMailReceiver($object);
90
}
91
92
protected function buildMailTemplate(PhabricatorLiskDAO $object) {
93
$id = $object->getID();
94
$name = $object->getTitle();
95
96
return id(new PhabricatorMetaMTAMail())
97
->setSubject("P{$id}: {$name}");
98
}
99
100
protected function buildMailBody(
101
PhabricatorLiskDAO $object,
102
array $xactions) {
103
104
$body = parent::buildMailBody($object, $xactions);
105
106
$body->addLinkSection(
107
pht('PASTE DETAIL'),
108
PhabricatorEnv::getProductionURI('/P'.$object->getID()));
109
110
return $body;
111
}
112
113
protected function shouldPublishFeedStory(
114
PhabricatorLiskDAO $object,
115
array $xactions) {
116
return true;
117
}
118
119
protected function supportsSearch() {
120
return true;
121
}
122
123
}
124
125