Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phriction/controller/PhrictionDiffController.php
Show All 39 Lines | public function handleRequest(AphrontRequest $request) { | ||||
if (!$content_l || !$content_r) { | if (!$content_l || !$content_r) { | ||||
return new Aphront404Response(); | return new Aphront404Response(); | ||||
} | } | ||||
$text_l = $content_l->getContent(); | $text_l = $content_l->getContent(); | ||||
$text_r = $content_r->getContent(); | $text_r = $content_r->getContent(); | ||||
$text_l = phutil_utf8_hard_wrap($text_l, 80); | $diff_view = id(new PhabricatorApplicationTransactionTextDiffDetailView()) | ||||
$text_l = implode("\n", $text_l); | ->setOldText($text_l) | ||||
$text_r = phutil_utf8_hard_wrap($text_r, 80); | ->setNewText($text_r); | ||||
$text_r = implode("\n", $text_r); | |||||
$engine = new PhabricatorDifferenceEngine(); | $changes = id(new PHUIObjectBoxView()) | ||||
$changeset = $engine->generateChangesetFromFileContent($text_l, $text_r); | ->setHeaderText(pht('Content Changes')) | ||||
$changeset->setFilename($content_r->getTitle()); | |||||
$changeset->setOldProperties( | |||||
array( | |||||
'Title' => $content_l->getTitle(), | |||||
)); | |||||
$changeset->setNewProperties( | |||||
array( | |||||
'Title' => $content_r->getTitle(), | |||||
)); | |||||
$whitespace_mode = DifferentialChangesetParser::WHITESPACE_SHOW_ALL; | |||||
$parser = id(new DifferentialChangesetParser()) | |||||
->setUser($viewer) | |||||
->setChangeset($changeset) | |||||
->setRenderingReference("{$l},{$r}"); | |||||
$parser->readParametersFromRequest($request); | |||||
$parser->setWhitespaceMode($whitespace_mode); | |||||
$engine = new PhabricatorMarkupEngine(); | |||||
$engine->setViewer($viewer); | |||||
$engine->process(); | |||||
$parser->setMarkupEngine($engine); | |||||
$spec = $request->getStr('range'); | |||||
list($range_s, $range_e, $mask) = | |||||
DifferentialChangesetParser::parseRangeSpecification($spec); | |||||
$parser->setRange($range_s, $range_e); | |||||
$parser->setMask($mask); | |||||
if ($request->isAjax()) { | |||||
return id(new PhabricatorChangesetResponse()) | |||||
->setRenderedChangeset($parser->renderChangeset()); | |||||
} | |||||
$changes = id(new DifferentialChangesetListView()) | |||||
->setUser($this->getViewer()) | |||||
->setChangesets(array($changeset)) | |||||
->setVisibleChangesets(array($changeset)) | |||||
->setRenderingReferences(array("{$l},{$r}")) | |||||
->setRenderURI('/phriction/diff/'.$document->getID().'/') | |||||
->setTitle(pht('Changes')) | |||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
->setParser($parser); | ->appendChild( | ||||
phutil_tag( | |||||
'div', | |||||
array( | |||||
'class' => 'prose-diff-frame', | |||||
), | |||||
$diff_view)); | |||||
require_celerity_resource('phriction-document-css'); | require_celerity_resource('phriction-document-css'); | ||||
$slug = $document->getSlug(); | $slug = $document->getSlug(); | ||||
$revert_l = $this->renderRevertButton($content_l, $current); | $revert_l = $this->renderRevertButton($content_l, $current); | ||||
$revert_r = $this->renderRevertButton($content_r, $current); | $revert_r = $this->renderRevertButton($content_r, $current); | ||||
▲ Show 20 Lines • Show All 188 Lines • Show Last 20 Lines |