[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorPasteEditor 4 extends PhabricatorApplicationTransactionEditor { 5 6 private $pasteFile; 7 8 public function getEditorApplicationClass() { 9 return 'PhabricatorPasteApplication'; 10 } 11 12 public function getEditorObjectsDescription() { 13 return pht('Pastes'); 14 } 15 16 public static function initializeFileForPaste( 17 PhabricatorUser $actor, 18 $name, 19 $data) { 20 21 return PhabricatorFile::newFromFileData( 22 $data, 23 array( 24 'name' => $name, 25 'mime-type' => 'text/plain; charset=utf-8', 26 'authorPHID' => $actor->getPHID(), 27 'viewPolicy' => PhabricatorPolicies::POLICY_NOONE, 28 )); 29 } 30 31 public function getTransactionTypes() { 32 $types = parent::getTransactionTypes(); 33 34 $types[] = PhabricatorPasteTransaction::TYPE_CONTENT; 35 $types[] = PhabricatorPasteTransaction::TYPE_TITLE; 36 $types[] = PhabricatorPasteTransaction::TYPE_LANGUAGE; 37 $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY; 38 $types[] = PhabricatorTransactions::TYPE_COMMENT; 39 40 return $types; 41 } 42 43 protected function getCustomTransactionOldValue( 44 PhabricatorLiskDAO $object, 45 PhabricatorApplicationTransaction $xaction) { 46 47 switch ($xaction->getTransactionType()) { 48 case PhabricatorPasteTransaction::TYPE_CONTENT: 49 return $object->getFilePHID(); 50 case PhabricatorPasteTransaction::TYPE_TITLE: 51 return $object->getTitle(); 52 case PhabricatorPasteTransaction::TYPE_LANGUAGE: 53 return $object->getLanguage(); 54 } 55 } 56 57 protected function getCustomTransactionNewValue( 58 PhabricatorLiskDAO $object, 59 PhabricatorApplicationTransaction $xaction) { 60 61 switch ($xaction->getTransactionType()) { 62 case PhabricatorPasteTransaction::TYPE_CONTENT: 63 case PhabricatorPasteTransaction::TYPE_TITLE: 64 case PhabricatorPasteTransaction::TYPE_LANGUAGE: 65 return $xaction->getNewValue(); 66 } 67 } 68 69 protected function applyCustomInternalTransaction( 70 PhabricatorLiskDAO $object, 71 PhabricatorApplicationTransaction $xaction) { 72 73 switch ($xaction->getTransactionType()) { 74 case PhabricatorPasteTransaction::TYPE_CONTENT: 75 $object->setFilePHID($xaction->getNewValue()); 76 return; 77 case PhabricatorPasteTransaction::TYPE_TITLE: 78 $object->setTitle($xaction->getNewValue()); 79 return; 80 case PhabricatorPasteTransaction::TYPE_LANGUAGE: 81 $object->setLanguage($xaction->getNewValue()); 82 return; 83 case PhabricatorTransactions::TYPE_VIEW_POLICY: 84 $object->setViewPolicy($xaction->getNewValue()); 85 return; 86 case PhabricatorTransactions::TYPE_COMMENT: 87 case PhabricatorTransactions::TYPE_SUBSCRIBERS: 88 case PhabricatorTransactions::TYPE_EDGE: 89 return; 90 } 91 92 return parent::applyCustomInternalTransaction($object, $xaction); 93 } 94 95 protected function applyCustomExternalTransaction( 96 PhabricatorLiskDAO $object, 97 PhabricatorApplicationTransaction $xaction) { 98 99 switch ($xaction->getTransactionType()) { 100 case PhabricatorPasteTransaction::TYPE_CONTENT: 101 case PhabricatorPasteTransaction::TYPE_TITLE: 102 case PhabricatorPasteTransaction::TYPE_LANGUAGE: 103 case PhabricatorTransactions::TYPE_VIEW_POLICY: 104 case PhabricatorTransactions::TYPE_COMMENT: 105 case PhabricatorTransactions::TYPE_SUBSCRIBERS: 106 case PhabricatorTransactions::TYPE_EDGE: 107 return; 108 } 109 110 return parent::applyCustomExternalTransaction($object, $xaction); 111 } 112 113 protected function extractFilePHIDsFromCustomTransaction( 114 PhabricatorLiskDAO $object, 115 PhabricatorApplicationTransaction $xaction) { 116 117 switch ($xaction->getTransactionType()) { 118 case PhabricatorPasteTransaction::TYPE_CONTENT: 119 return array($xaction->getNewValue()); 120 } 121 122 return parent::extractFilePHIDsFromCustomTransaction($object, $xaction); 123 } 124 125 protected function shouldSendMail( 126 PhabricatorLiskDAO $object, 127 array $xactions) { 128 foreach ($xactions as $xaction) { 129 switch ($xaction->getTransactionType()) { 130 case PhabricatorPasteTransaction::TYPE_CONTENT: 131 return false; 132 default: 133 break; 134 } 135 } 136 return true; 137 } 138 139 protected function getMailSubjectPrefix() { 140 return PhabricatorEnv::getEnvConfig('metamta.paste.subject-prefix'); 141 } 142 143 protected function getMailTo(PhabricatorLiskDAO $object) { 144 return array( 145 $object->getAuthorPHID(), 146 $this->requireActor()->getPHID(), 147 ); 148 } 149 150 protected function buildReplyHandler(PhabricatorLiskDAO $object) { 151 return id(new PasteReplyHandler()) 152 ->setMailReceiver($object); 153 } 154 155 protected function buildMailTemplate(PhabricatorLiskDAO $object) { 156 $id = $object->getID(); 157 $name = $object->getTitle(); 158 159 return id(new PhabricatorMetaMTAMail()) 160 ->setSubject("P{$id}: {$name}") 161 ->addHeader('Thread-Topic', "P{$id}"); 162 } 163 164 protected function buildMailBody( 165 PhabricatorLiskDAO $object, 166 array $xactions) { 167 168 $body = parent::buildMailBody($object, $xactions); 169 170 $body->addLinkSection( 171 pht('PASTE DETAIL'), 172 PhabricatorEnv::getProductionURI('/P'.$object->getID())); 173 174 return $body; 175 } 176 177 protected function shouldPublishFeedStory( 178 PhabricatorLiskDAO $object, 179 array $xactions) { 180 return true; 181 } 182 183 protected function supportsSearch() { 184 return false; 185 } 186 187 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Sun Nov 30 09:20:46 2014 | Cross-referenced by PHPXref 0.7.1 |