public function handleRequest(AphrontRequest $request) { $viewer = $request->getViewer(); $conpherence_id = $request->getURIData('id'); $fulltext = $request->getStr('fulltext'); $conpherence = id(new ConpherenceThreadQuery())->setViewer($viewer)->withIDs(array($conpherence_id))->executeOne(); if (!$conpherence) { return new Aphront404Response(); } $engine = new ConpherenceThreadSearchEngine(); $engine->setViewer($viewer); $saved = $engine->buildSavedQueryFromBuiltin('all')->setParameter('phids', array($conpherence->getPHID()))->setParameter('fulltext', $fulltext); $pager = $engine->newPagerForSavedQuery($saved); $pager->setPageSize(15); $query = $engine->buildQueryFromSavedQuery($saved); $results = $engine->executeQuery($query, $pager); $view = $engine->renderResults($results, $saved); return id(new AphrontAjaxResponse())->setContent($view->getContent()); }
private function buildNUXView() { $viewer = $this->getViewer(); $engine = new ConpherenceThreadSearchEngine(); $engine->setViewer($viewer); $saved = $engine->buildSavedQueryFromBuiltin('all'); $query = $engine->buildQueryFromSavedQuery($saved); $pager = $engine->newPagerForSavedQuery($saved); $pager->setPageSize(10); $results = $engine->executeQuery($query, $pager); $view = $engine->renderResults($results, $saved); $create_button = id(new PHUIButtonView())->setTag('a')->setText(pht('New Room'))->setHref('/conpherence/new/')->setWorkflow(true)->setColor(PHUIButtonView::GREEN); if ($results) { $create_button->setIcon('fa-comments'); $header = id(new PHUIHeaderView())->setHeader(pht('Joinable Rooms'))->addActionLink($create_button); $box = id(new PHUIObjectBoxView())->setHeader($header)->setObjectList($view->getContent()); return $box; } else { $view = id(new PHUIBigInfoView())->setIcon('fa-comments')->setTitle(pht('Welcome to Conpherence'))->setDescription(pht('Conpherence lets you create public or private rooms to ' . 'communicate with others.'))->addAction($create_button); return $view; } }