@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at upstream/main 123 lines 3.0 kB view raw
1<?php 2 3final 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::class; 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}