Differential D21709 Diff 51732 src/applications/phriction/controller/PhrictionMarkupPreviewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/phriction/controller/PhrictionMarkupPreviewController.php
<?php | <?php | ||||
final class PhrictionMarkupPreviewController | final class PhrictionMarkupPreviewController | ||||
extends PhabricatorController { | extends PhabricatorController { | ||||
public function processRequest() { | public function handleRequest(AphrontRequest $request) { | ||||
$request = $this->getRequest(); | $viewer = $request->getViewer(); | ||||
$viewer = $request->getUser(); | |||||
$text = $request->getStr('text'); | $text = $request->getStr('text'); | ||||
$slug = $request->getStr('slug'); | $slug = $request->getStr('slug'); | ||||
$document = id(new PhrictionDocumentQuery()) | |||||
->setViewer($viewer) | |||||
->withSlugs(array($slug)) | |||||
->needContent(true) | |||||
->executeOne(); | |||||
if (!$document) { | |||||
$document = PhrictionDocument::initializeNewDocument( | |||||
$viewer, | |||||
$slug); | |||||
$content = id(new PhrictionContent()) | |||||
->setSlug($slug); | |||||
$document | |||||
->setPHID($document->generatePHID()) | |||||
->attachContent($content); | |||||
} | |||||
$output = PhabricatorMarkupEngine::renderOneObject( | $output = PhabricatorMarkupEngine::renderOneObject( | ||||
id(new PhabricatorMarkupOneOff()) | id(new PhabricatorMarkupOneOff()) | ||||
->setPreserveLinebreaks(true) | ->setPreserveLinebreaks(true) | ||||
->setDisableCache(true) | ->setDisableCache(true) | ||||
->setContent($text), | ->setContent($text), | ||||
'default', | 'default', | ||||
$viewer, | $viewer, | ||||
array( | $document); | ||||
'phriction.isPreview' => true, | |||||
'phriction.slug' => $slug, | |||||
)); | |||||
return id(new AphrontAjaxResponse()) | return id(new AphrontAjaxResponse()) | ||||
->setContent($output); | ->setContent($output); | ||||
} | } | ||||
} | } |