diff --git a/src/applications/ponder/editor/PonderQuestionEditor.php b/src/applications/ponder/editor/PonderQuestionEditor.php index d9f77fad94..eeac4b3414 100644 --- a/src/applications/ponder/editor/PonderQuestionEditor.php +++ b/src/applications/ponder/editor/PonderQuestionEditor.php @@ -212,6 +212,19 @@ final class PonderQuestionEditor return true; } + public function getMailTagsMap() { + return array( + PonderQuestionTransaction::MAILTAG_DETAILS => + pht('Someone changes the questions details.'), + PonderQuestionTransaction::MAILTAG_ANSWERS => + pht('Someone adds a new answer.'), + PonderQuestionTransaction::MAILTAG_COMMENT => + pht('Someone comments on the question.'), + PonderQuestionTransaction::MAILTAG_OTHER => + pht('Other question activity not listed above occurs.'), + ); + } + protected function buildReplyHandler(PhabricatorLiskDAO $object) { return id(new PonderQuestionReplyHandler()) ->setMailReceiver($object); diff --git a/src/applications/ponder/storage/PonderQuestionTransaction.php b/src/applications/ponder/storage/PonderQuestionTransaction.php index 80cb9f83f0..3c2734ea71 100644 --- a/src/applications/ponder/storage/PonderQuestionTransaction.php +++ b/src/applications/ponder/storage/PonderQuestionTransaction.php @@ -8,6 +8,11 @@ final class PonderQuestionTransaction const TYPE_ANSWERS = 'ponder.question:answer'; const TYPE_STATUS = 'ponder.question:status'; + const MAILTAG_DETAILS = 'question:details'; + const MAILTAG_COMMENT = 'question:comment'; + const MAILTAG_ANSWERS = 'question:answer'; + const MAILTAG_OTHER = 'question:other'; + public function getApplicationName() { return 'ponder'; } @@ -105,6 +110,28 @@ final class PonderQuestionTransaction return parent::getTitle(); } + public function getMailTags() { + $tags = parent::getMailTags(); + + switch ($this->getTransactionType()) { + case PhabricatorTransactions::TYPE_COMMENT: + $tags[] = self::MAILTAG_COMMENT; + break; + case self::TYPE_TITLE: + case self::TYPE_CONTENT: + case self::TYPE_STATUS: + $tags[] = self::MAILTAG_DETAILS; + break; + case self::TYPE_ANSWERS: + $tags[] = self::MAILTAG_ANSWERS; + break; + default: + $tags[] = self::MAILTAG_OTHER; + break; + } + return $tags; + } + public function getIcon() { $old = $this->getOldValue(); $new = $this->getNewValue();