pht('Someone changes the countdown details.'), PhabricatorCountdownTransaction::MAILTAG_COMMENT => pht('Someone comments on a countdown.'), PhabricatorCountdownTransaction::MAILTAG_OTHER => pht('Other countdown activity not listed above occurs.'), ); } protected function buildMailTemplate(PhabricatorLiskDAO $object) { $monogram = $object->getMonogram(); $name = $object->getTitle(); return id(new PhabricatorMetaMTAMail()) ->setSubject("{$monogram}: {$name}"); } protected function buildMailBody( PhabricatorLiskDAO $object, array $xactions) { $body = parent::buildMailBody($object, $xactions); $description = $object->getDescription(); if (strlen($description)) { $body->addRemarkupSection( pht('COUNTDOWN DESCRIPTION'), $object->getDescription()); } $body->addLinkSection( pht('COUNTDOWN DETAIL'), PhabricatorEnv::getProductionURI('/'.$object->getMonogram())); return $body; } protected function getMailTo(PhabricatorLiskDAO $object) { return array( $object->getAuthorPHID(), $this->requireActor()->getPHID(), ); } protected function getMailSubjectPrefix() { return '[Countdown]'; } protected function buildReplyHandler(PhabricatorLiskDAO $object) { return id(new PhabricatorCountdownReplyHandler()) ->setMailReceiver($object); } protected function shouldPublishFeedStory( PhabricatorLiskDAO $object, array $xactions) { return true; } protected function supportsSearch() { return true; } }