public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $inlines = $this->loadInlineComments();
     assert_instances_of($inlines, 'PhabricatorInlineCommentInterface');
     $engine = new PhabricatorMarkupEngine();
     $engine->setViewer($user);
     foreach ($inlines as $inline) {
         $engine->addObject($inline, PhabricatorInlineCommentInterface::MARKUP_FIELD_BODY);
     }
     $engine->process();
     $phids = array($user->getPHID());
     $handles = $this->loadViewerHandles($phids);
     $views = array();
     foreach ($inlines as $inline) {
         $view = new DifferentialInlineCommentView();
         $view->setInlineComment($inline);
         $view->setMarkupEngine($engine);
         $view->setHandles($handles);
         $view->setEditable(false);
         $view->setPreview(true);
         $views[] = $view->render();
     }
     $views = phutil_implode_html("\n", $views);
     return id(new AphrontAjaxResponse())->setContent($views);
 }
 public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $inlines = $this->loadInlineComments();
     assert_instances_of($inlines, 'PhabricatorInlineCommentInterface');
     $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
     $phids = array($user->getPHID());
     $handles = id(new PhabricatorObjectHandleData($phids))->loadHandles();
     $views = array();
     foreach ($inlines as $inline) {
         $view = new DifferentialInlineCommentView();
         $view->setInlineComment($inline);
         $view->setMarkupEngine($engine);
         $view->setHandles($handles);
         $view->setEditable(false);
         $view->setPreview(true);
         $views[] = $view->render();
     }
     $views = implode("\n", $views);
     return id(new AphrontAjaxResponse())->setContent($views);
 }
 public function processRequest()
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     // TODO: This is a reasonable approximation of the feature as it exists
     // in Facebook trunk but we should probably pull filename data, sort these,
     // figure out next/prev/edit/delete, deal with out-of-date inlines, etc.
     $inlines = id(new DifferentialInlineComment())->loadAllWhere('authorPHID = %s AND revisionID = %d AND commentID IS NULL', $user->getPHID(), $this->revisionID);
     $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
     $phids = array($user->getPHID());
     $handles = id(new PhabricatorObjectHandleData($phids))->loadHandles();
     $views = array();
     foreach ($inlines as $inline) {
         $view = new DifferentialInlineCommentView();
         $view->setInlineComment($inline);
         $view->setMarkupEngine($engine);
         $view->setHandles($handles);
         $view->setEditable(false);
         $view->setPreview(true);
         $views[] = $view->render();
     }
     $views = implode("\n", $views);
     return id(new AphrontAjaxResponse())->setContent($views);
 }
 private function buildRenderedCommentResponse(PhabricatorInlineCommentInterface $inline, $on_right)
 {
     $request = $this->getRequest();
     $user = $request->getUser();
     $engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
     $phids = array($user->getPHID());
     $handles = $this->loadViewerHandles($phids);
     $view = new DifferentialInlineCommentView();
     $view->setInlineComment($inline);
     $view->setOnRight($on_right);
     $view->setBuildScaffolding(true);
     $view->setMarkupEngine($engine);
     $view->setHandles($handles);
     $view->setEditable(true);
     return id(new AphrontAjaxResponse())->setContent(array('inlineCommentID' => $inline->getID(), 'markup' => $view->render()));
 }