diff --git a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php --- a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php +++ b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php @@ -3265,7 +3265,7 @@ } if (!$is_comment || !$seen_comment) { - $header = $xaction->getTitleForMail(); + $header = $xaction->getTitleForTextMail(); if ($header !== null) { $headers[] = $header; } @@ -3350,7 +3350,7 @@ // If this is not the first comment in the mail, add the header showing // who wrote the comment immediately above the comment. if (!$is_initial) { - $header = $xaction->getTitleForMail(); + $header = $xaction->getTitleForTextMail(); if ($header !== null) { $body->addRawPlaintextSection($header); } diff --git a/src/applications/transactions/storage/PhabricatorApplicationTransaction.php b/src/applications/transactions/storage/PhabricatorApplicationTransaction.php --- a/src/applications/transactions/storage/PhabricatorApplicationTransaction.php +++ b/src/applications/transactions/storage/PhabricatorApplicationTransaction.php @@ -763,12 +763,29 @@ return $this->shouldHideForFeed(); } + private function getTitleForMailWithRenderingTarget($new_target) { + $old_target = $this->getRenderingTarget(); + try { + $this->setRenderingTarget($new_target); + $result = $this->getTitleForMail(); + } catch (Exception $ex) { + $this->setRenderingTarget($old_target); + throw $ex; + } + $this->setRenderingTarget($old_target); + return $result; + } + public function getTitleForMail() { - return id(clone $this)->setRenderingTarget('text')->getTitle(); + return $this->getTitle(); + } + + public function getTitleForTextMail() { + return $this->getTitleForMailWithRenderingTarget(self::TARGET_TEXT); } public function getTitleForHTMLMail() { - $title = $this->getTitleForMail(); + $title = $this->getTitleForMailWithRenderingTarget(self::TARGET_HTML); if ($title === null) { return null; } diff --git a/src/applications/transactions/storage/PhabricatorModularTransaction.php b/src/applications/transactions/storage/PhabricatorModularTransaction.php --- a/src/applications/transactions/storage/PhabricatorModularTransaction.php +++ b/src/applications/transactions/storage/PhabricatorModularTransaction.php @@ -150,15 +150,6 @@ return parent::getActionStrength(); } - public function getTitleForMail() { - $old_target = $this->getRenderingTarget(); - $new_target = self::TARGET_TEXT; - $this->setRenderingTarget($new_target); - $title = $this->getTitle(); - $this->setRenderingTarget($old_target); - return $title; - } - /* final */ public function getTitleForFeed() { $title = $this->getTransactionImplementation()->getTitleForFeed(); if ($title !== null) {