mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-25 08:12:40 +01:00
6b7d7401ca
Summary: Ref T4558. This diff modernizes the #diviner application. Basically: - Add an edit controller, accessible at `/book/$BOOK/edit/`. - Add edit/view policies. - Added an action menu to the `DivinerBookController` to expose the edit interface. - Allows projects to be associated with books. - Implement edges and transactions. - Implemented `PhabricatorApplicationTransactionInterface` in `DivinerLiveBook`. Test Plan: - Generated a Diviner book with `./bin/diviner generate`. - Added projects to a book and ensured that they persisted. - Changed the view policy on a book and made sure it was effective. Reviewers: #blessed_reviewers, epriestley Reviewed By: #blessed_reviewers, epriestley Subscribers: Korvin, epriestley Maniphest Tasks: T4558 Differential Revision: https://secure.phabricator.com/D13091
46 lines
1.1 KiB
PHP
46 lines
1.1 KiB
PHP
<?php
|
|
|
|
abstract class DivinerController extends PhabricatorController {
|
|
|
|
protected function buildSideNavView() {
|
|
$menu = $this->buildApplicationMenu();
|
|
return AphrontSideNavFilterView::newFromMenu($menu);
|
|
}
|
|
|
|
public function buildApplicationMenu() {
|
|
$menu = new PHUIListView();
|
|
|
|
id(new DivinerAtomSearchEngine())
|
|
->setViewer($this->getRequest()->getViewer())
|
|
->addNavigationItems($menu);
|
|
|
|
return $menu;
|
|
}
|
|
|
|
protected function renderAtomList(array $symbols) {
|
|
assert_instances_of($symbols, 'DivinerLiveSymbol');
|
|
|
|
$list = array();
|
|
foreach ($symbols as $symbol) {
|
|
switch ($symbol->getType()) {
|
|
case DivinerAtom::TYPE_FUNCTION:
|
|
$title = $symbol->getTitle().'()';
|
|
break;
|
|
default:
|
|
$title = $symbol->getTitle();
|
|
break;
|
|
}
|
|
|
|
$item = id(new DivinerBookItemView())
|
|
->setTitle($title)
|
|
->setHref($symbol->getURI())
|
|
->setSubtitle($symbol->getSummary())
|
|
->setType(DivinerAtom::getAtomTypeNameString($symbol->getType()));
|
|
|
|
$list[] = $item;
|
|
}
|
|
|
|
return $list;
|
|
}
|
|
|
|
}
|