Differential D8657 Diff 20543 src/applications/differential/customfield/DifferentialChangesSinceLastUpdateField.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/customfield/DifferentialChangesSinceLastUpdateField.php
- This file was added.
| <?php | |||||
| final class DifferentialChangesSinceLastUpdateField | |||||
| extends DifferentialCustomField { | |||||
| public function getFieldKey() { | |||||
| return 'differential:changes-since-last-update'; | |||||
| } | |||||
| public function getFieldName() { | |||||
| return pht('Changes Since Last Update'); | |||||
| } | |||||
| public function getFieldDescription() { | |||||
| return pht('Links to changes since the last update in email.'); | |||||
| } | |||||
| public function shouldAppearInTransactionMail() { | |||||
| return true; | |||||
| } | |||||
| public function updateTransactionMailBody( | |||||
| PhabricatorMetaMTAMailBody $body, | |||||
| PhabricatorApplicationTransactionEditor $editor, | |||||
| array $xactions) { | |||||
| if ($editor->getIsNewObject()) { | |||||
| return; | |||||
| } | |||||
| if ($editor->getIsCloseByCommit()) { | |||||
| return; | |||||
| } | |||||
| $xaction = $editor->getDiffUpdateTransaction($xactions); | |||||
| if (!$xaction) { | |||||
| return; | |||||
| } | |||||
| $original = id(new DifferentialDiffQuery()) | |||||
| ->setViewer($this->getViewer()) | |||||
| ->withPHIDs(array($xaction->getOldValue())) | |||||
| ->executeOne(); | |||||
| if (!$original) { | |||||
| return; | |||||
| } | |||||
| $revision = $this->getObject(); | |||||
| $current = $revision->getActiveDiff(); | |||||
| $old_id = $original->getID(); | |||||
| $new_id = $current->getID(); | |||||
| $uri = '/'.$revision->getMonogram().'?vs='.$old_id.'&id='.$new_id; | |||||
| $uri = PhabricatorEnv::getProductionURI($uri); | |||||
| $body->addTextSection(pht('CHANGES SINCE LAST UPDATE'), $uri); | |||||
| } | |||||
| } | |||||