From 3db9e4b4e5a20759777e66fa1069650fa4d759b4 Mon Sep 17 00:00:00 2001 From: Chad Little Date: Thu, 13 Aug 2015 13:00:47 -0700 Subject: [PATCH] Add mailtags to Ponder Summary: Ref T3578 Adds mailtags to Ponder, answer stuff not quite ready, but that's another diff. Test Plan: set preferences to notify, second account updates a question, get notification on first. Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T3578 Differential Revision: https://secure.phabricator.com/D13886 --- .../ponder/editor/PonderQuestionEditor.php | 13 +++++++++ .../storage/PonderQuestionTransaction.php | 27 +++++++++++++++++++ 2 files changed, 40 insertions(+) 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();