Differential D20402 Diff 48691 src/applications/dashboard/storage/PhabricatorDashboardTransaction.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/dashboard/storage/PhabricatorDashboardTransaction.php
| <?php | <?php | ||||
| final class PhabricatorDashboardTransaction | final class PhabricatorDashboardTransaction | ||||
| extends PhabricatorApplicationTransaction { | extends PhabricatorModularTransaction { | ||||
| const TYPE_NAME = 'dashboard:name'; | |||||
| const TYPE_ICON = 'dashboard:icon'; | |||||
| const TYPE_STATUS = 'dashboard:status'; | |||||
| const TYPE_LAYOUT_MODE = 'dashboard:layoutmode'; | |||||
| public function getApplicationName() { | public function getApplicationName() { | ||||
| return 'dashboard'; | return 'dashboard'; | ||||
| } | } | ||||
| public function getApplicationTransactionType() { | public function getApplicationTransactionType() { | ||||
| return PhabricatorDashboardDashboardPHIDType::TYPECONST; | return PhabricatorDashboardDashboardPHIDType::TYPECONST; | ||||
| } | } | ||||
| public function getTitle() { | public function getBaseTransactionClass() { | ||||
| $author_phid = $this->getAuthorPHID(); | return 'PhabricatorDashboardTransactionType'; | ||||
| $object_phid = $this->getObjectPHID(); | |||||
| $old = $this->getOldValue(); | |||||
| $new = $this->getNewValue(); | |||||
| $author_link = $this->renderHandleLink($author_phid); | |||||
| $type = $this->getTransactionType(); | |||||
| switch ($type) { | |||||
| case self::TYPE_NAME: | |||||
| if (!strlen($old)) { | |||||
| return pht( | |||||
| '%s created this dashboard.', | |||||
| $author_link); | |||||
| } else { | |||||
| return pht( | |||||
| '%s renamed this dashboard from "%s" to "%s".', | |||||
| $author_link, | |||||
| $old, | |||||
| $new); | |||||
| } | |||||
| break; | |||||
| case self::TYPE_ICON: | |||||
| if (!strlen($old)) { | |||||
| return pht( | |||||
| '%s set the dashboard icon.', | |||||
| $author_link); | |||||
| } else { | |||||
| return pht( | |||||
| '%s changed this dashboard icon from "%s" to "%s".', | |||||
| $author_link, | |||||
| $old, | |||||
| $new); | |||||
| } | |||||
| break; | |||||
| case self::TYPE_STATUS: | |||||
| if ($new == PhabricatorDashboard::STATUS_ACTIVE) { | |||||
| return pht( | |||||
| '%s activated this dashboard.', | |||||
| $author_link); | |||||
| } else { | |||||
| return pht( | |||||
| '%s archived this dashboard.', | |||||
| $author_link); | |||||
| } | |||||
| break; | |||||
| } | |||||
| return parent::getTitle(); | |||||
| } | |||||
| public function getTitleForFeed() { | |||||
| $author_phid = $this->getAuthorPHID(); | |||||
| $object_phid = $this->getObjectPHID(); | |||||
| $old = $this->getOldValue(); | |||||
| $new = $this->getNewValue(); | |||||
| $author_link = $this->renderHandleLink($author_phid); | |||||
| $object_link = $this->renderHandleLink($object_phid); | |||||
| $type = $this->getTransactionType(); | |||||
| switch ($type) { | |||||
| case self::TYPE_NAME: | |||||
| if (!strlen($old)) { | |||||
| return pht( | |||||
| '%s created dashboard %s.', | |||||
| $author_link, | |||||
| $object_link); | |||||
| } else { | |||||
| return pht( | |||||
| '%s renamed dashboard %s from "%s" to "%s".', | |||||
| $author_link, | |||||
| $object_link, | |||||
| $old, | |||||
| $new); | |||||
| } | |||||
| break; | |||||
| case self::TYPE_ICON: | |||||
| if (!strlen($old)) { | |||||
| return pht( | |||||
| '%s set dashboard icon for %s.', | |||||
| $author_link, | |||||
| $object_link); | |||||
| } else { | |||||
| return pht( | |||||
| '%s set the dashboard icon on %s from "%s" to "%s".', | |||||
| $author_link, | |||||
| $object_link, | |||||
| $old, | |||||
| $new); | |||||
| } | |||||
| break; | |||||
| case self::TYPE_STATUS: | |||||
| if ($new == PhabricatorDashboard::STATUS_ACTIVE) { | |||||
| return pht( | |||||
| '%s activated dashboard %s.', | |||||
| $author_link, | |||||
| $object_link); | |||||
| } else { | |||||
| return pht( | |||||
| '%s archived dashboard %s.', | |||||
| $author_link, | |||||
| $object_link); | |||||
| } | |||||
| break; | |||||
| } | |||||
| return parent::getTitleForFeed(); | |||||
| } | |||||
| public function getColor() { | |||||
| $old = $this->getOldValue(); | |||||
| $new = $this->getNewValue(); | |||||
| switch ($this->getTransactionType()) { | |||||
| case self::TYPE_NAME: | |||||
| if (!strlen($old)) { | |||||
| return PhabricatorTransactions::COLOR_GREEN; | |||||
| } | |||||
| break; | |||||
| case self::TYPE_STATUS: | |||||
| if ($new == PhabricatorDashboard::STATUS_ACTIVE) { | |||||
| return PhabricatorTransactions::COLOR_GREEN; | |||||
| } else { | |||||
| return PhabricatorTransactions::COLOR_INDIGO; | |||||
| } | |||||
| break; | |||||
| } | |||||
| return parent::getColor(); | |||||
| } | } | ||||
| public function getIcon() { | |||||
| $new = $this->getNewValue(); | |||||
| switch ($this->getTransactionType()) { | |||||
| case self::TYPE_NAME: | |||||
| return 'fa-pencil'; | |||||
| break; | |||||
| case self::TYPE_STATUS: | |||||
| if ($new == PhabricatorDashboard::STATUS_ACTIVE) { | |||||
| return 'fa-check'; | |||||
| } else { | |||||
| return 'fa-ban'; | |||||
| } | |||||
| break; | |||||
| case self::TYPE_LAYOUT_MODE: | |||||
| return 'fa-columns'; | |||||
| break; | |||||
| } | |||||
| return parent::getIcon(); | |||||
| } | |||||
| public function shouldHide() { | |||||
| $old = $this->getOldValue(); | |||||
| $new = $this->getNewValue(); | |||||
| switch ($this->getTransactionType()) { | |||||
| case self::TYPE_LAYOUT_MODE: | |||||
| return true; | |||||
| } | |||||
| return parent::shouldHide(); | |||||
| } | |||||
| } | } | ||||