[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/feed/story/ -> PhabricatorFeedStoryDifferential.php (source)

   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  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1