mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-09 14:21:02 +01:00
Clean up Differential draft mail behaviors
Summary: Ref T2543. Fixes two relatively minor things: - When builds finish in Harbormaster, send mail "From" the author. - Set the `firstBroadcast` flag so that initial mail picks up earlier history (notably, the "reviewers" line). For now, I'm not setting `firstBroadcast` on explicit "Request Review" (but maybe we should), and not trying to deal with weird cases where you leave a bunch of comments on a draft. Those might be fine as-is or may get tweaked later. Test Plan: Created a revision with Harbormaster builds, ran builds, saw initial email come "From" the right user with more metadata. Reviewers: amckinley Reviewed By: amckinley Maniphest Tasks: T2543 Differential Revision: https://secure.phabricator.com/D18748
This commit is contained in:
parent
bde71324f8
commit
a4b934cad2
1 changed files with 17 additions and 1 deletions
|
@ -9,6 +9,7 @@ final class DifferentialTransactionEditor
|
|||
private $didExpandInlineState = false;
|
||||
private $hasReviewTransaction = false;
|
||||
private $affectedPaths;
|
||||
private $firstBroadcast = false;
|
||||
|
||||
public function getEditorApplicationClass() {
|
||||
return 'PhabricatorDifferentialApplication';
|
||||
|
@ -27,7 +28,7 @@ final class DifferentialTransactionEditor
|
|||
}
|
||||
|
||||
public function isFirstBroadcast() {
|
||||
return $this->getIsNewObject();
|
||||
return $this->firstBroadcast;
|
||||
}
|
||||
|
||||
public function getDiffUpdateTransaction(array $xactions) {
|
||||
|
@ -1449,11 +1450,13 @@ final class DifferentialTransactionEditor
|
|||
protected function getCustomWorkerState() {
|
||||
return array(
|
||||
'changedPriorToCommitURI' => $this->changedPriorToCommitURI,
|
||||
'firstBroadcast' => $this->firstBroadcast,
|
||||
);
|
||||
}
|
||||
|
||||
protected function loadCustomWorkerState(array $state) {
|
||||
$this->changedPriorToCommitURI = idx($state, 'changedPriorToCommitURI');
|
||||
$this->firstBroadcast = idx($state, 'firstBroadcast');
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
@ -1566,6 +1569,19 @@ final class DifferentialTransactionEditor
|
|||
// natural and more useful.
|
||||
$author_phid = $object->getAuthorPHID();
|
||||
|
||||
// Additionally, we change the acting PHID for the transaction set
|
||||
// to the author if it isn't already a user so that mail comes from
|
||||
// the natural author.
|
||||
$acting_phid = $this->getActingAsPHID();
|
||||
$user_type = PhabricatorPeopleUserPHIDType::TYPECONST;
|
||||
if (phid_get_type($acting_phid) != $user_type) {
|
||||
$this->setActingAsPHID($author_phid);
|
||||
}
|
||||
|
||||
// Mark this as the first broadcast we're sending about the revision
|
||||
// so mail can generate specially.
|
||||
$this->firstBroadcast = true;
|
||||
|
||||
$xaction = $object->getApplicationTransactionTemplate()
|
||||
->setAuthorPHID($author_phid)
|
||||
->setTransactionType(
|
||||
|
|
Loading…
Reference in a new issue