2011-06-10 02:53:53 -04:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
abstract class PhabricatorPasteController extends PhabricatorController {
|
|
|
|
|
|
2013-05-27 13:41:09 -07:00
|
|
|
public function buildSideNavView($for_app = false) {
|
2012-09-30 19:44:09 -07:00
|
|
|
$user = $this->getRequest()->getUser();
|
|
|
|
|
|
2012-08-15 10:45:06 -07:00
|
|
|
$nav = new AphrontSideNavFilterView();
|
2013-05-27 13:41:09 -07:00
|
|
|
$nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
|
2012-08-15 10:45:06 -07:00
|
|
|
|
2012-12-07 13:35:17 -08:00
|
|
|
if ($for_app) {
|
2013-05-27 13:41:09 -07:00
|
|
|
$nav->addFilter('create', pht('Create Paste'));
|
2012-08-15 10:45:06 -07:00
|
|
|
}
|
|
|
|
|
|
2013-05-27 13:41:09 -07:00
|
|
|
$nav->addLabel(pht('Queries'));
|
|
|
|
|
|
2013-05-27 13:42:18 -07:00
|
|
|
$engine = id(new PhabricatorPasteSearchEngine())
|
|
|
|
|
->setViewer($user);
|
|
|
|
|
|
2013-05-27 13:41:09 -07:00
|
|
|
$named_queries = id(new PhabricatorNamedQueryQuery())
|
|
|
|
|
->setViewer($user)
|
|
|
|
|
->withUserPHIDs(array($user->getPHID()))
|
2013-05-27 13:42:18 -07:00
|
|
|
->withEngineClassNames(array(get_class($engine)))
|
2013-05-27 13:41:09 -07:00
|
|
|
->execute();
|
|
|
|
|
|
2013-05-27 13:42:18 -07:00
|
|
|
$named_queries = $named_queries + $engine->getBuiltinQueries($user);
|
|
|
|
|
|
2013-05-27 13:41:09 -07:00
|
|
|
foreach ($named_queries as $query) {
|
|
|
|
|
$nav->addFilter('query/'.$query->getQueryKey(), $query->getQueryName());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$nav->addFilter('savedqueries', pht('Edit Queries...'));
|
2013-05-10 13:43:59 -07:00
|
|
|
|
|
|
|
|
$nav->addLabel(pht('Search'));
|
2013-05-29 14:00:52 -07:00
|
|
|
$nav->addFilter('query/advanced', pht('Advanced Search'));
|
2012-12-07 13:35:17 -08:00
|
|
|
|
2013-05-27 13:41:09 -07:00
|
|
|
$nav->selectFilter(null);
|
2012-08-15 10:45:06 -07:00
|
|
|
|
|
|
|
|
return $nav;
|
|
|
|
|
}
|
|
|
|
|
|
2012-12-07 13:34:44 -08:00
|
|
|
public function buildApplicationMenu() {
|
2013-05-27 13:41:09 -07:00
|
|
|
return $this->buildSideNavView(true)->getMenu();
|
2012-12-07 13:35:17 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public function buildApplicationCrumbs() {
|
|
|
|
|
$crumbs = parent::buildApplicationCrumbs();
|
|
|
|
|
|
|
|
|
|
$crumbs->addAction(
|
|
|
|
|
id(new PhabricatorMenuItemView())
|
|
|
|
|
->setName(pht('Create Paste'))
|
|
|
|
|
->setHref($this->getApplicationURI('create/'))
|
|
|
|
|
->setIcon('create'));
|
|
|
|
|
|
|
|
|
|
return $crumbs;
|
2012-12-07 13:34:44 -08:00
|
|
|
}
|
|
|
|
|
|
2012-12-16 12:02:34 -08:00
|
|
|
public function buildSourceCodeView(
|
|
|
|
|
PhabricatorPaste $paste,
|
|
|
|
|
$max_lines = null) {
|
|
|
|
|
|
2013-02-15 16:38:46 -08:00
|
|
|
$lines = phutil_split_lines($paste->getContent());
|
2012-12-16 12:02:34 -08:00
|
|
|
|
|
|
|
|
return id(new PhabricatorSourceCodeView())
|
2012-12-16 16:33:42 -08:00
|
|
|
->setLimit($max_lines)
|
2012-12-16 12:02:34 -08:00
|
|
|
->setLines($lines);
|
|
|
|
|
}
|
2012-12-16 16:33:42 -08:00
|
|
|
|
2011-06-10 02:53:53 -04:00
|
|
|
}
|