Path: blob/master/src/applications/differential/engineextension/DifferentialMailEngineExtension.php
12256 views
<?php12final class DifferentialMailEngineExtension3extends PhabricatorMailEngineExtension {45const EXTENSIONKEY = 'differential';67public function supportsObject($object) {8return ($object instanceof DifferentialRevision);9}1011public function newMailStampTemplates($object) {12return array(13id(new PhabricatorPHIDMailStamp())14->setKey('author')15->setLabel(pht('Author')),16id(new PhabricatorPHIDMailStamp())17->setKey('reviewer')18->setLabel(pht('Reviewer')),19id(new PhabricatorPHIDMailStamp())20->setKey('blocking-reviewer')21->setLabel(pht('Reviewer')),22id(new PhabricatorPHIDMailStamp())23->setKey('resigned-reviewer')24->setLabel(pht('Reviewer')),25id(new PhabricatorPHIDMailStamp())26->setKey('revision-repository')27->setLabel(pht('Revision Repository')),28id(new PhabricatorPHIDMailStamp())29->setKey('revision-status')30->setLabel(pht('Revision Status')),31);32}3334public function newMailStamps($object, array $xactions) {35$editor = $this->getEditor();36$viewer = $this->getViewer();3738$revision = id(new DifferentialRevisionQuery())39->setViewer($viewer)40->needReviewers(true)41->withPHIDs(array($object->getPHID()))42->executeOne();4344$reviewers = array();45$blocking = array();46$resigned = array();47foreach ($revision->getReviewers() as $reviewer) {48$reviewer_phid = $reviewer->getReviewerPHID();4950if ($reviewer->isResigned()) {51$resigned[] = $reviewer_phid;52} else {53$reviewers[] = $reviewer_phid;54if ($reviewer->isBlocking()) {55$blocking[] = $reviewer_phid;56}57}58}5960$this->getMailStamp('author')61->setValue($revision->getAuthorPHID());6263$this->getMailStamp('reviewer')64->setValue($reviewers);6566$this->getMailStamp('blocking-reviewer')67->setValue($blocking);6869$this->getMailStamp('resigned-reviewer')70->setValue($resigned);7172$this->getMailStamp('revision-repository')73->setValue($revision->getRepositoryPHID());7475$this->getMailStamp('revision-status')76->setValue($revision->getModernRevisionStatus());77}7879}808182