1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-25 08:12:40 +01:00
phorge-phorge/src/applications/differential/mail/DifferentialChangeDetailMailView.php

78 lines
1.6 KiB
PHP
Raw Normal View History

<?php
final class DifferentialChangeDetailMailView
extends DifferentialMailView {
private $viewer;
private $diff;
private $patch;
public function setViewer(PhabricatorUser $viewer) {
$this->viewer = $viewer;
return $this;
}
public function getViewer() {
return $this->viewer;
}
public function setDiff(DifferentialDiff $diff) {
$this->diff = $diff;
return $this;
}
public function getDiff() {
return $this->diff;
}
public function setPatch($patch) {
$this->patch = $patch;
return $this;
}
public function getPatch() {
return $this->patch;
}
public function buildMailSection() {
$viewer = $this->getViewer();
$diff = $this->getDiff();
$engine = new PhabricatorMarkupEngine();
$out = array();
foreach ($diff->getChangesets() as $changeset) {
$parser = id(new DifferentialChangesetParser())
->setUser($viewer)
->setChangeset($changeset)
->setLinesOfContext(2)
->setMarkupEngine($engine);
$parser->setRenderer(new DifferentialChangesetOneUpMailRenderer());
$block = $parser->render();
$filename = $changeset->getFilename();
$filename = $this->renderHeaderBold($filename);
$header = $this->renderHeaderBlock($filename);
$out[] = $this->renderContentBox(
array(
$header,
$this->renderCodeBlock($block),
));
}
$out = phutil_implode_html(phutil_tag('br'), $out);
$patch_html = $out;
$patch_text = $this->getPatch();
return id(new PhabricatorMetaMTAMailSection())
->addPlaintextFragment($patch_text)
->addHTMLFragment($patch_html);
}
}