3 final class PhabricatorPhurlURLEditor
4 extends PhabricatorApplicationTransactionEditor
{
6 public function getEditorApplicationClass() {
7 return 'PhabricatorPhurlApplication';
10 public function getEditorObjectsDescription() {
14 public function getCreateObjectTitle($author, $object) {
15 return pht('%s created this URL.', $author);
18 public function getCreateObjectTitleForFeed($author, $object) {
19 return pht('%s created %s.', $author, $object);
22 protected function supportsSearch() {
26 public function getTransactionTypes() {
27 $types = parent
::getTransactionTypes();
28 $types[] = PhabricatorTransactions
::TYPE_COMMENT
;
29 $types[] = PhabricatorTransactions
::TYPE_VIEW_POLICY
;
30 $types[] = PhabricatorTransactions
::TYPE_EDIT_POLICY
;
35 protected function shouldSendMail(
36 PhabricatorLiskDAO
$object,
41 public function getMailTagsMap() {
43 PhabricatorPhurlURLTransaction
::MAILTAG_DETAILS
=>
45 "A URL's details change."),
49 protected function shouldPublishFeedStory(
50 PhabricatorLiskDAO
$object,
55 protected function getMailSubjectPrefix() {
56 return pht('[Phurl]');
59 protected function getMailTo(PhabricatorLiskDAO
$object) {
61 $phids[] = $this->getActingAsPHID();
66 protected function buildMailTemplate(PhabricatorLiskDAO
$object) {
67 $id = $object->getID();
68 $name = $object->getName();
70 return id(new PhabricatorMetaMTAMail())
71 ->setSubject("U{$id}: {$name}");
74 protected function buildMailBody(
75 PhabricatorLiskDAO
$object,
78 $description = $object->getDescription();
79 $body = parent
::buildMailBody($object, $xactions);
81 if (strlen($description)) {
82 $body->addRemarkupSection(
83 pht('URL DESCRIPTION'),
84 $object->getDescription());
87 $body->addLinkSection(
89 PhabricatorEnv
::getProductionURI('/U'.$object->getID()));
95 protected function didCatchDuplicateKeyException(
96 PhabricatorLiskDAO
$object,
101 $errors[] = new PhabricatorApplicationTransactionValidationError(
102 PhabricatorPhurlURLAliasTransaction
::TRANSACTIONTYPE
,
104 pht('This alias is already in use.'),
107 throw new PhabricatorApplicationTransactionValidationException($errors);
110 protected function buildReplyHandler(PhabricatorLiskDAO
$object) {
111 return id(new PhabricatorPhurlURLReplyHandler())
112 ->setMailReceiver($object);