Make builtin queries more generic

Summary:
Ref T2625. Currently, Paste hard-codes its filters as a separate layer above the query layer. Instead, expose these as "Builtin" queries which we construct at runtime. They act like normal saved queries, except in cases where it doesn't make sense.

(I'm probably going to let you hide them too, and maybe even rename them, although for now they're just immutable.)

Test Plan: {F44340}

Reviewers: btrahan, blc

Reviewed By: btrahan

CC: aran

Maniphest Tasks: T2625

Differential Revision: https://secure.phabricator.com/D6058
This commit is contained in:
epriestley
2013-05-27 13:42:18 -07:00
parent 0abb0c41bf
commit 451ddd76bf
6 changed files with 156 additions and 74 deletions

View File

@@ -14,20 +14,21 @@ abstract class PhabricatorPasteController extends PhabricatorController {
$nav->addLabel(pht('Queries'));
$engine = id(new PhabricatorPasteSearchEngine())
->setViewer($user);
$named_queries = id(new PhabricatorNamedQueryQuery())
->setViewer($user)
->withUserPHIDs(array($user->getPHID()))
->withEngineClassNames(array('PhabricatorPasteSearchEngine'))
->withEngineClassNames(array(get_class($engine)))
->execute();
$named_queries = $named_queries + $engine->getBuiltinQueries($user);
foreach ($named_queries as $query) {
$nav->addFilter('query/'.$query->getQueryKey(), $query->getQueryName());
}
$nav->addFilter('filter/all', pht('All Pastes'));
if ($user->isLoggedIn()) {
$nav->addFilter('filter/my', pht('My Pastes'));
}
$nav->addFilter('savedqueries', pht('Edit Queries...'));
$nav->addLabel(pht('Search'));