mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-28 12:08:14 +01:00
Summary: Ref T2625. We currently hard-code the URI; instead, derive it from the Engine. I weakened the strength of getQueryResultsPageURI to let it build from a NamedQuery or a SavedQuery, because constructing a SavedQuery for a builtin NamedQuery is a bit of a pain. Test Plan: Clicked links on the saved queries page, got query results. Reviewers: btrahan, blc Reviewed By: btrahan CC: aran Maniphest Tasks: T2625 Differential Revision: https://secure.phabricator.com/D6060
80 lines
2.2 KiB
PHP
80 lines
2.2 KiB
PHP
<?php
|
|
|
|
final class PhabricatorPasteQueriesController
|
|
extends PhabricatorPasteController {
|
|
|
|
public function processRequest() {
|
|
$request = $this->getRequest();
|
|
$user = $request->getUser();
|
|
|
|
$engine = id(new PhabricatorPasteSearchEngine())
|
|
->setViewer($user);
|
|
|
|
$nav = $this->buildSideNavView();
|
|
$nav->selectFilter('savedqueries');
|
|
|
|
$named_queries = id(new PhabricatorNamedQueryQuery())
|
|
->setViewer($user)
|
|
->withUserPHIDs(array($user->getPHID()))
|
|
->withEngineClassNames(array(get_class($engine)))
|
|
->execute();
|
|
|
|
$named_queries += $engine->getBuiltinQueries();
|
|
|
|
$list = new PhabricatorObjectItemListView();
|
|
$list->setUser($user);
|
|
|
|
foreach ($named_queries as $named_query) {
|
|
$date_created = phabricator_datetime(
|
|
$named_query->getDateCreated(),
|
|
$user);
|
|
|
|
$item = id(new PhabricatorObjectItemView())
|
|
->setHeader($named_query->getQueryName())
|
|
->setHref($engine->getQueryResultsPageURI($named_query->getQueryKey()));
|
|
|
|
if ($named_query->getIsBuiltin()) {
|
|
$item->addIcon('lock-grey', pht('Builtin'));
|
|
$item->setBarColor('grey');
|
|
} else {
|
|
$item->addIcon('none', $date_created);
|
|
$item->addAction(
|
|
id(new PhabricatorMenuItemView())
|
|
->setIcon('delete')
|
|
->setHref('/search/delete/'.$named_query->getQueryKey().'/')
|
|
->setWorkflow(true));
|
|
$item->addAction(
|
|
id(new PhabricatorMenuItemView())
|
|
->setIcon('edit')
|
|
->setHref('/search/edit/'.$named_query->getQueryKey().'/'));
|
|
}
|
|
|
|
$list->addItem($item);
|
|
}
|
|
|
|
$list->setNoDataString(pht("No results found for this query."));
|
|
|
|
$nav->appendChild(
|
|
array(
|
|
$list,
|
|
));
|
|
|
|
$crumbs = $this
|
|
->buildApplicationCrumbs($nav)
|
|
->addCrumb(
|
|
id(new PhabricatorCrumbView())
|
|
->setName(pht("Saved Queries"))
|
|
->setHref($this->getApplicationURI('/savedqueries/')));
|
|
|
|
$nav->setCrumbs($crumbs);
|
|
|
|
return $this->buildApplicationPage(
|
|
$nav,
|
|
array(
|
|
'title' => pht("Saved Queries"),
|
|
'device' => true,
|
|
'dust' => true,
|
|
));
|
|
}
|
|
|
|
}
|