2013-05-31 19:52:25 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
abstract class DivinerController extends PhabricatorController {
|
|
|
|
|
|
|
|
protected function buildSideNavView() {
|
|
|
|
$menu = $this->buildMenu();
|
|
|
|
return AphrontSideNavFilterView::newFromMenu($menu);
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function buildApplicationMenu() {
|
|
|
|
return $this->buildMenu();
|
|
|
|
}
|
|
|
|
|
|
|
|
private function buildMenu() {
|
2013-06-05 17:41:43 +02:00
|
|
|
$menu = new PHUIListView();
|
2013-05-31 19:52:25 +02:00
|
|
|
|
|
|
|
id(new DivinerAtomSearchEngine())
|
|
|
|
->setViewer($this->getRequest()->getUser())
|
|
|
|
->addNavigationItems($menu);
|
|
|
|
|
|
|
|
return $menu;
|
|
|
|
}
|
|
|
|
|
2013-06-04 20:15:34 +02:00
|
|
|
protected function renderAtomList(array $symbols) {
|
|
|
|
assert_instances_of($symbols, 'DivinerLiveSymbol');
|
|
|
|
|
|
|
|
$request = $this->getRequest();
|
|
|
|
$user = $request->getUser();
|
|
|
|
|
2013-09-10 18:39:50 +02:00
|
|
|
$list = array();
|
2013-06-04 20:15:34 +02:00
|
|
|
foreach ($symbols as $symbol) {
|
2014-03-11 01:59:13 +01:00
|
|
|
|
|
|
|
switch ($symbol->getType()) {
|
|
|
|
case DivinerAtom::TYPE_FUNCTION:
|
|
|
|
$title = $symbol->getTitle().'()';
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
$title = $symbol->getTitle();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
2013-09-10 18:39:50 +02:00
|
|
|
$item = id(new DivinerBookItemView())
|
2014-03-11 01:59:13 +01:00
|
|
|
->setTitle($title)
|
2013-06-04 20:15:34 +02:00
|
|
|
->setHref($symbol->getURI())
|
2013-09-10 18:39:50 +02:00
|
|
|
->setSubtitle($symbol->getSummary())
|
|
|
|
->setType(DivinerAtom::getAtomTypeNameString(
|
2013-08-28 18:55:05 +02:00
|
|
|
$symbol->getType()));
|
2013-06-04 20:15:34 +02:00
|
|
|
|
2013-09-10 18:39:50 +02:00
|
|
|
$list[] = $item;
|
2013-06-04 20:15:34 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
return $list;
|
|
|
|
}
|
|
|
|
|
2013-05-31 19:52:25 +02:00
|
|
|
}
|