public function getTitleForFeed() { $author_phid = $this->getAuthorPHID(); $object_phid = $this->getObjectPHID(); $author_handle = $this->renderHandleLink($author_phid); $object_handle = $this->renderHandleLink($object_phid); $old = $this->getOldValue(); $new = $this->getNewValue(); switch ($this->getTransactionType()) { case self::TYPE_NAME: if ($old === null) { return pht('%s created %s.', $author_handle, $object_handle); } else { return pht('%s renamed %s from "%s" to "%s".', $author_handle, $object_handle, $old, $new); } case self::TYPE_STATUS: if ($old == 0) { return pht('%s archived %s.', $author_handle, $object_handle); } else { return pht('%s activated %s.', $author_handle, $object_handle); } case self::TYPE_IMAGE: // TODO: Some day, it would be nice to show the images. if (!$old) { return pht('%s set the image for %s to %s.', $author_handle, $object_handle, $this->renderHandleLink($new)); } else { if (!$new) { return pht('%s removed the image for %s.', $author_handle, $object_handle); } else { return pht('%s updated the image for %s from %s to %s.', $author_handle, $object_handle, $this->renderHandleLink($old), $this->renderHandleLink($new)); } } case self::TYPE_ICON: return pht('%s set the icon for %s to %s.', $author_handle, $object_handle, PhabricatorProjectIcon::getLabel($new)); case self::TYPE_COLOR: return pht('%s set the color for %s to %s.', $author_handle, $object_handle, PHUITagView::getShadeName($new)); case self::TYPE_LOCKED: if ($new) { return pht('%s locked %s membership.', $author_handle, $object_handle); } else { return pht('%s unlocked %s membership.', $author_handle, $object_handle); } case self::TYPE_SLUGS: $add = array_diff($new, $old); $rem = array_diff($old, $new); if ($add && $rem) { return pht('%s changed %s hashtag(s), added %d: %s; removed %d: %s.', $author_handle, $object_handle, count($add), $this->renderSlugList($add), count($rem), $this->renderSlugList($rem)); } else { if ($add) { return pht('%s added %d %s hashtag(s): %s.', $author_handle, count($add), $object_handle, $this->renderSlugList($add)); } else { if ($rem) { return pht('%s removed %d %s hashtag(s): %s.', $author_handle, count($rem), $object_handle, $this->renderSlugList($rem)); } } } } return parent::getTitleForFeed(); }
public function getTitle() { $old = $this->getOldValue(); $new = $this->getNewValue(); $author_handle = $this->renderHandleLink($this->getAuthorPHID()); switch ($this->getTransactionType()) { case PhabricatorProjectTransaction::TYPE_NAME: if ($old === null) { return pht('%s created this project.', $author_handle); } else { return pht('%s renamed this project from "%s" to "%s".', $author_handle, $old, $new); } case PhabricatorProjectTransaction::TYPE_STATUS: if ($old == 0) { return pht('%s closed this project.', $author_handle); } else { return pht('%s reopened this project.', $author_handle); } case PhabricatorProjectTransaction::TYPE_IMAGE: // TODO: Some day, it would be nice to show the images. if (!$old) { return pht('%s set this project\'s image to %s.', $author_handle, $this->renderHandleLink($new)); } else { if (!$new) { return pht('%s removed this project\'s image.', $author_handle); } else { return pht('%s updated this project\'s image from %s to %s.', $author_handle, $this->renderHandleLink($old), $this->renderHandleLink($new)); } } case PhabricatorProjectTransaction::TYPE_ICON: return pht('%s set this project\'s icon to %s.', $author_handle, PhabricatorProjectIcon::getLabel($new)); case PhabricatorProjectTransaction::TYPE_COLOR: return pht('%s set this project\'s color to %s.', $author_handle, PHUITagView::getShadeName($new)); case PhabricatorProjectTransaction::TYPE_SLUGS: $add = array_diff($new, $old); $rem = array_diff($old, $new); if ($add && $rem) { return pht('%s changed project hashtag(s), added %d: %s; removed %d: %s', $author_handle, count($add), $this->renderSlugList($add), count($rem), $this->renderSlugList($rem)); } else { if ($add) { return pht('%s added %d project hashtag(s): %s', $author_handle, count($add), $this->renderSlugList($add)); } else { if ($rem) { return pht('%s removed %d project hashtag(s): %s', $author_handle, count($rem), $this->renderSlugList($rem)); } } } case PhabricatorProjectTransaction::TYPE_MEMBERS: $add = array_diff($new, $old); $rem = array_diff($old, $new); if ($add && $rem) { return pht('%s changed project member(s), added %d: %s; removed %d: %s', $author_handle, count($add), $this->renderHandleList($add), count($rem), $this->renderHandleList($rem)); } else { if ($add) { if (count($add) == 1 && head($add) == $this->getAuthorPHID()) { return pht('%s joined this project.', $author_handle); } else { return pht('%s added %d project member(s): %s', $author_handle, count($add), $this->renderHandleList($add)); } } else { if ($rem) { if (count($rem) == 1 && head($rem) == $this->getAuthorPHID()) { return pht('%s left this project.', $author_handle); } else { return pht('%s removed %d project member(s): %s', $author_handle, count($rem), $this->renderHandleList($rem)); } } } } } return parent::getTitle(); }