Add ability to name saved queries.
Summary: Can name saved queries. Test Plan: Try naming some saved queries using the form. Reviewers: epriestley CC: aran, Korvin, AnhNhan Maniphest Tasks: T2625 Differential Revision: https://secure.phabricator.com/D5878 Conflicts: src/infrastructure/storage/patch/PhabricatorBuiltinPatchList.php
This commit is contained in:
committed by
epriestley
parent
c36f44a014
commit
3c1f402da3
@@ -37,6 +37,7 @@ final class PhabricatorApplicationPaste extends PhabricatorApplication {
|
||||
'edit/(?P<id>[1-9]\d*)/' => 'PhabricatorPasteEditController',
|
||||
'filter/(?P<filter>\w+)/' => 'PhabricatorPasteListController',
|
||||
'query/(?P<queryKey>\w+)/'=> 'PhabricatorPasteListController',
|
||||
'savedqueries/' => 'PhabricatorPasteQueriesController',
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
@@ -18,7 +18,11 @@ abstract class PhabricatorPasteController extends PhabricatorController {
|
||||
if ($user->isLoggedIn()) {
|
||||
$nav->addFilter('my', pht('My Pastes'));
|
||||
}
|
||||
|
||||
$nav->addLabel(pht('Search'));
|
||||
$nav->addFilter('advanced', pht('Advanced Search'));
|
||||
$nav->addFilter('', pht('Saved Queries'),
|
||||
$this->getApplicationURI('/savedqueries/'));
|
||||
|
||||
$nav->selectFilter($filter, 'all');
|
||||
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
final class PhabricatorPasteQueriesController
|
||||
extends PhabricatorPasteController {
|
||||
|
||||
public function processRequest() {
|
||||
$request = $this->getRequest();
|
||||
$user = $request->getUser();
|
||||
|
||||
$nav = $this->buildSideNavView("");
|
||||
$filter = $nav->getSelectedFilter();
|
||||
|
||||
$table = new PhabricatorNamedQuery();
|
||||
$conn = $table->establishConnection('r');
|
||||
$data = queryfx_all(
|
||||
$conn,
|
||||
'SELECT * FROM %T WHERE userPHID=%s AND engineClassName=%s',
|
||||
$table->getTableName(),
|
||||
$user->getPHID(),
|
||||
'PhabricatorPasteSearchEngine');
|
||||
|
||||
$list = new PhabricatorObjectItemListView();
|
||||
$list->setUser($user);
|
||||
|
||||
foreach ($data as $key => $saved_query) {
|
||||
$date_created = phabricator_datetime($saved_query["dateCreated"], $user);
|
||||
$item = id(new PhabricatorObjectItemView())
|
||||
->setHeader($saved_query["queryName"])
|
||||
->setHref('/paste/query/'.$saved_query["queryKey"].'/')
|
||||
->addByline(pht('Date Created: ').$date_created);
|
||||
$list->addItem($item);
|
||||
}
|
||||
|
||||
$pager = new AphrontCursorPagerView();
|
||||
$pager->readFromRequest($request);
|
||||
|
||||
$list->setPager($pager);
|
||||
|
||||
$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,
|
||||
));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -83,7 +83,10 @@ final class PhabricatorPasteSearchEngine
|
||||
|
||||
$form->appendChild(
|
||||
id(new AphrontFormSubmitControl())
|
||||
->setValue(pht('Filter Pastes')));
|
||||
->setValue(pht('Filter Pastes'))
|
||||
->addCancelButton(
|
||||
'/search/name/'.$saved_query->getQueryKey().'/',
|
||||
pht('Save Custom Query...')));
|
||||
|
||||
return $form;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user