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:
Bryan Cuccioli
2013-05-10 13:43:59 -07:00
committed by epriestley
parent c36f44a014
commit 3c1f402da3
10 changed files with 182 additions and 2 deletions

View File

@@ -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',
),
);
}

View File

@@ -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');

View File

@@ -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,
));
}
}

View File

@@ -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;
}