Changeset View
Changeset View
Standalone View
Standalone View
src/applications/badges/storage/PhabricatorBadgesTransaction.php
- This file was added.
<?php | |||||
final class PhabricatorBadgesTransaction | |||||
extends PhabricatorApplicationTransaction { | |||||
const TYPE_NAME = 'badges:name'; | |||||
const TYPE_DESCRIPTION = 'badges:description'; | |||||
const TYPE_QUALITY = 'badges:quality'; | |||||
const TYPE_ICON = 'badges:icon'; | |||||
const TYPE_STATUS = 'badges:status'; | |||||
const TYPE_FLAVOR = 'badges:flavor'; | |||||
public function getApplicationName() { | |||||
return 'badges'; | |||||
} | |||||
public function getApplicationTransactionType() { | |||||
return PhabricatorBadgesPHIDType::TYPECONST; | |||||
} | |||||
public function getApplicationTransactionCommentObject() { | |||||
return null; | |||||
} | |||||
public function getTitle() { | |||||
$author_phid = $this->getAuthorPHID(); | |||||
$object_phid = $this->getObjectPHID(); | |||||
$old = $this->getOldValue(); | |||||
$new = $this->getNewValue(); | |||||
$type = $this->getTransactionType(); | |||||
switch ($type) { | |||||
case self::TYPE_NAME: | |||||
if ($old === null) { | |||||
return pht( | |||||
'%s created this badge.', | |||||
$this->renderHandleLink($author_phid)); | |||||
} else { | |||||
return pht( | |||||
'%s renamed this badge from "%s" to "%s".', | |||||
$this->renderHandleLink($author_phid), | |||||
$old, | |||||
$new); | |||||
} | |||||
break; | |||||
} | |||||
return parent::getTitle(); | |||||
} | |||||
public function getTitleForFeed() { | |||||
$author_phid = $this->getAuthorPHID(); | |||||
$object_phid = $this->getObjectPHID(); | |||||
$old = $this->getOldValue(); | |||||
$new = $this->getNewValue(); | |||||
$type = $this->getTransactionType(); | |||||
switch ($type) { | |||||
case self::TYPE_NAME: | |||||
if ($old === null) { | |||||
return pht( | |||||
'%s created %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
} else { | |||||
return pht( | |||||
'%s renamed %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
} | |||||
break; | |||||
case self::TYPE_FLAVOR: | |||||
return pht( | |||||
'%s updated the flavor text for %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
case self::TYPE_ICON: | |||||
return pht( | |||||
'%s updated the icon for %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
case self::TYPE_QUALITY: | |||||
return pht( | |||||
'%s updated the quality level for %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
case self::TYPE_DESCRIPTION: | |||||
return pht( | |||||
'%s updated the description for %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
case self::TYPE_STATUS: | |||||
switch ($new) { | |||||
case PhabricatorBadge::STATUS_OPEN: | |||||
return pht( | |||||
'%s activated %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
case PhabricatorBadge::STATUS_CLOSED: | |||||
return pht( | |||||
'%s archived %s.', | |||||
$this->renderHandleLink($author_phid), | |||||
$this->renderHandleLink($object_phid)); | |||||
} | |||||
break; | |||||
} | |||||
return parent::getTitleForFeed(); | |||||
} | |||||
public function shouldHide() { | |||||
$old = $this->getOldValue(); | |||||
switch ($this->getTransactionType()) { | |||||
case self::TYPE_DESCRIPTION: | |||||
return ($old === null); | |||||
} | |||||
return parent::shouldHide(); | |||||
} | |||||
public function hasChangeDetails() { | |||||
switch ($this->getTransactionType()) { | |||||
case self::TYPE_DESCRIPTION: | |||||
return ($this->getOldValue() !== null); | |||||
} | |||||
return parent::hasChangeDetails(); | |||||
} | |||||
public function renderChangeDetails(PhabricatorUser $viewer) { | |||||
return $this->renderTextCorpusChangeDetails( | |||||
$viewer, | |||||
$this->getOldValue(), | |||||
$this->getNewValue()); | |||||
} | |||||
} |