コード例 #1
0
 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();
 }
コード例 #2
0
 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();
 }