[ Index ] |
PHP Cross Reference of Phabricator |
[Summary view] [Print] [Text view]
1 <?php 2 3 final class PhabricatorFeedStoryDifferential extends PhabricatorFeedStory { 4 5 public function getPrimaryObjectPHID() { 6 return $this->getValue('revision_phid'); 7 } 8 9 public function renderView() { 10 $data = $this->getStoryData(); 11 12 $view = $this->newStoryView(); 13 $view->setAppIcon('differential-dark'); 14 15 $line = $this->getLineForData($data); 16 $view->setTitle($line); 17 18 $href = $this->getHandle($data->getValue('revision_phid'))->getURI(); 19 $view->setHref($href); 20 21 $action = $data->getValue('action'); 22 23 switch ($action) { 24 case DifferentialAction::ACTION_CREATE: 25 case DifferentialAction::ACTION_CLOSE: 26 case DifferentialAction::ACTION_COMMENT: 27 $full_size = true; 28 break; 29 default: 30 $full_size = false; 31 break; 32 } 33 34 $view->setImage($this->getHandle($data->getAuthorPHID())->getImageURI()); 35 if ($full_size) { 36 $content = $this->renderSummary($data->getValue('feedback_content')); 37 $view->appendChild($content); 38 } 39 40 return $view; 41 } 42 43 private function getLineForData($data) { 44 $actor_phid = $data->getAuthorPHID(); 45 $revision_phid = $data->getValue('revision_phid'); 46 $action = $data->getValue('action'); 47 48 $actor_link = $this->linkTo($actor_phid); 49 $revision_link = $this->linkTo($revision_phid); 50 51 switch ($action) { 52 case DifferentialAction::ACTION_COMMENT: 53 $one_line = pht('%s commented on revision %s', 54 $actor_link, $revision_link); 55 break; 56 case DifferentialAction::ACTION_ACCEPT: 57 $one_line = pht('%s accepted revision %s', 58 $actor_link, $revision_link); 59 break; 60 case DifferentialAction::ACTION_REJECT: 61 $one_line = pht('%s requested changes to revision %s', 62 $actor_link, $revision_link); 63 break; 64 case DifferentialAction::ACTION_RETHINK: 65 $one_line = pht('%s planned changes to revision %s', 66 $actor_link, $revision_link); 67 break; 68 case DifferentialAction::ACTION_ABANDON: 69 $one_line = pht('%s abandoned revision %s', 70 $actor_link, $revision_link); 71 break; 72 case DifferentialAction::ACTION_CLOSE: 73 $one_line = pht('%s closed revision %s', 74 $actor_link, $revision_link); 75 break; 76 case DifferentialAction::ACTION_REQUEST: 77 $one_line = pht('%s requested a review of revision %s', 78 $actor_link, $revision_link); 79 break; 80 case DifferentialAction::ACTION_RECLAIM: 81 $one_line = pht('%s reclaimed revision %s', 82 $actor_link, $revision_link); 83 break; 84 case DifferentialAction::ACTION_UPDATE: 85 $one_line = pht('%s updated revision %s', 86 $actor_link, $revision_link); 87 break; 88 case DifferentialAction::ACTION_RESIGN: 89 $one_line = pht('%s resigned from revision %s', 90 $actor_link, $revision_link); 91 break; 92 case DifferentialAction::ACTION_SUMMARIZE: 93 $one_line = pht('%s summarized revision %s', 94 $actor_link, $revision_link); 95 break; 96 case DifferentialAction::ACTION_TESTPLAN: 97 $one_line = pht('%s explained the test plan for revision %s', 98 $actor_link, $revision_link); 99 break; 100 case DifferentialAction::ACTION_CREATE: 101 $one_line = pht('%s created revision %s', 102 $actor_link, $revision_link); 103 break; 104 case DifferentialAction::ACTION_ADDREVIEWERS: 105 $one_line = pht('%s added reviewers to revision %s', 106 $actor_link, $revision_link); 107 break; 108 case DifferentialAction::ACTION_ADDCCS: 109 $one_line = pht('%s added CCs to revision %s', 110 $actor_link, $revision_link); 111 break; 112 case DifferentialAction::ACTION_CLAIM: 113 $one_line = pht('%s commandeered revision %s', 114 $actor_link, $revision_link); 115 break; 116 case DifferentialAction::ACTION_REOPEN: 117 $one_line = pht('%s reopened revision %s', 118 $actor_link, $revision_link); 119 break; 120 case DifferentialTransaction::TYPE_INLINE: 121 $one_line = pht('%s added inline comments to %s', 122 $actor_link, $revision_link); 123 break; 124 default: 125 $one_line = pht('%s edited %s', 126 $actor_link, $revision_link); 127 break; 128 } 129 130 return $one_line; 131 } 132 133 public function renderText() { 134 $author_name = $this->getHandle($this->getAuthorPHID())->getLinkName(); 135 136 $revision_handle = $this->getHandle($this->getPrimaryObjectPHID()); 137 $revision_title = $revision_handle->getLinkName(); 138 $revision_uri = PhabricatorEnv::getURI($revision_handle->getURI()); 139 140 $action = $this->getValue('action'); 141 142 switch ($action) { 143 case DifferentialAction::ACTION_COMMENT: 144 $one_line = pht('%s commented on revision %s %s', 145 $author_name, $revision_title, $revision_uri); 146 break; 147 case DifferentialAction::ACTION_ACCEPT: 148 $one_line = pht('%s accepted revision %s %s', 149 $author_name, $revision_title, $revision_uri); 150 break; 151 case DifferentialAction::ACTION_REJECT: 152 $one_line = pht('%s requested changes to revision %s %s', 153 $author_name, $revision_title, $revision_uri); 154 break; 155 case DifferentialAction::ACTION_RETHINK: 156 $one_line = pht('%s planned changes to revision %s %s', 157 $author_name, $revision_title, $revision_uri); 158 break; 159 case DifferentialAction::ACTION_ABANDON: 160 $one_line = pht('%s abandoned revision %s %s', 161 $author_name, $revision_title, $revision_uri); 162 break; 163 case DifferentialAction::ACTION_CLOSE: 164 $one_line = pht('%s closed revision %s %s', 165 $author_name, $revision_title, $revision_uri); 166 break; 167 case DifferentialAction::ACTION_REQUEST: 168 $one_line = pht('%s requested a review of revision %s %s', 169 $author_name, $revision_title, $revision_uri); 170 break; 171 case DifferentialAction::ACTION_RECLAIM: 172 $one_line = pht('%s reclaimed revision %s %s', 173 $author_name, $revision_title, $revision_uri); 174 break; 175 case DifferentialAction::ACTION_UPDATE: 176 $one_line = pht('%s updated revision %s %s', 177 $author_name, $revision_title, $revision_uri); 178 break; 179 case DifferentialAction::ACTION_RESIGN: 180 $one_line = pht('%s resigned from revision %s %s', 181 $author_name, $revision_title, $revision_uri); 182 break; 183 case DifferentialAction::ACTION_SUMMARIZE: 184 $one_line = pht('%s summarized revision %s %s', 185 $author_name, $revision_title, $revision_uri); 186 break; 187 case DifferentialAction::ACTION_TESTPLAN: 188 $one_line = pht('%s explained the test plan for revision %s %s', 189 $author_name, $revision_title, $revision_uri); 190 break; 191 case DifferentialAction::ACTION_CREATE: 192 $one_line = pht('%s created revision %s %s', 193 $author_name, $revision_title, $revision_uri); 194 break; 195 case DifferentialAction::ACTION_ADDREVIEWERS: 196 $one_line = pht('%s added reviewers to revision %s %s', 197 $author_name, $revision_title, $revision_uri); 198 break; 199 case DifferentialAction::ACTION_ADDCCS: 200 $one_line = pht('%s added CCs to revision %s %s', 201 $author_name, $revision_title, $revision_uri); 202 break; 203 case DifferentialAction::ACTION_CLAIM: 204 $one_line = pht('%s commandeered revision %s %s', 205 $author_name, $revision_title, $revision_uri); 206 break; 207 case DifferentialAction::ACTION_REOPEN: 208 $one_line = pht('%s reopened revision %s %s', 209 $author_name, $revision_title, $revision_uri); 210 break; 211 case DifferentialTransaction::TYPE_INLINE: 212 $one_line = pht('%s added inline comments to %s %s', 213 $author_name, $revision_title, $revision_uri); 214 break; 215 default: 216 $one_line = pht('%s edited %s %s', 217 $author_name, $revision_title, $revision_uri); 218 break; 219 } 220 221 return $one_line; 222 } 223 224 public function getNotificationAggregations() { 225 $class = get_class($this); 226 $phid = $this->getStoryData()->getValue('revision_phid'); 227 $read = (int)$this->getHasViewed(); 228 229 // Don't aggregate updates separated by more than 2 hours. 230 $block = (int)($this->getEpoch() / (60 * 60 * 2)); 231 232 return array( 233 "{$class}:{$phid}:{$read}:{$block}" 234 => 'PhabricatorFeedStoryDifferentialAggregate', 235 ); 236 } 237 238 }
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 |