Differential D12444 Diff 29887 src/applications/search/controller/PhabricatorApplicationSearchController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/controller/PhabricatorApplicationSearchController.php
Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | $form = id(new AphrontFormView()) | ||||
->setUser($user) | ->setUser($user) | ||||
->setAction($request->getPath()); | ->setAction($request->getPath()); | ||||
$engine->buildSearchForm($form, $saved_query); | $engine->buildSearchForm($form, $saved_query); | ||||
$errors = $engine->getErrors(); | $errors = $engine->getErrors(); | ||||
if ($errors) { | if ($errors) { | ||||
$run_query = false; | $run_query = false; | ||||
$errors = id(new PHUIInfoView()) | |||||
->setTitle(pht('Query Errors')) | |||||
->setErrors($errors); | |||||
} | } | ||||
$submit = id(new AphrontFormSubmitControl()) | $submit = id(new AphrontFormSubmitControl()) | ||||
->setValue(pht('Execute Query')); | ->setValue(pht('Execute Query')); | ||||
if ($run_query && !$named_query && $user->isLoggedIn()) { | if ($run_query && !$named_query && $user->isLoggedIn()) { | ||||
$submit->addCancelButton( | $submit->addCancelButton( | ||||
'/search/edit/'.$saved_query->getQueryKey().'/', | '/search/edit/'.$saved_query->getQueryKey().'/', | ||||
Show All 30 Lines | private function processSearchRequest() { | ||||
$nav->appendChild($filter_view); | $nav->appendChild($filter_view); | ||||
if ($run_query) { | if ($run_query) { | ||||
$nav->appendChild( | $nav->appendChild( | ||||
$anchor = id(new PhabricatorAnchorView()) | $anchor = id(new PhabricatorAnchorView()) | ||||
->setAnchorName('R')); | ->setAnchorName('R')); | ||||
try { | |||||
$query = $engine->buildQueryFromSavedQuery($saved_query); | $query = $engine->buildQueryFromSavedQuery($saved_query); | ||||
$pager = $engine->newPagerForSavedQuery($saved_query); | $pager = $engine->newPagerForSavedQuery($saved_query); | ||||
$pager->readFromRequest($request); | $pager->readFromRequest($request); | ||||
$objects = $engine->executeQuery($query, $pager); | $objects = $engine->executeQuery($query, $pager); | ||||
// TODO: To support Dashboard panels, rendering is moving into | // TODO: To support Dashboard panels, rendering is moving into | ||||
// SearchEngines. Move it all the way in and then get rid of this. | // SearchEngines. Move it all the way in and then get rid of this. | ||||
$interface = 'PhabricatorApplicationSearchResultsControllerInterface'; | $interface = 'PhabricatorApplicationSearchResultsControllerInterface'; | ||||
if ($parent instanceof $interface) { | if ($parent instanceof $interface) { | ||||
$list = $parent->renderResultsList($objects, $saved_query); | $list = $parent->renderResultsList($objects, $saved_query); | ||||
} else { | } else { | ||||
$engine->setRequest($request); | $engine->setRequest($request); | ||||
$list = $engine->renderResults( | $list = $engine->renderResults( | ||||
$objects, | $objects, | ||||
$saved_query); | $saved_query); | ||||
} | } | ||||
$nav->appendChild($list); | $nav->appendChild($list); | ||||
// TODO: This is a bit hacky. | // TODO: This is a bit hacky. | ||||
if ($list instanceof PHUIObjectItemListView) { | if ($list instanceof PHUIObjectItemListView) { | ||||
$list->setNoDataString(pht('No results found for this query.')); | $list->setNoDataString(pht('No results found for this query.')); | ||||
$list->setPager($pager); | $list->setPager($pager); | ||||
} else { | } else { | ||||
if ($pager->willShowPagingControls()) { | if ($pager->willShowPagingControls()) { | ||||
$pager_box = id(new PHUIBoxView()) | $pager_box = id(new PHUIBoxView()) | ||||
->addPadding(PHUI::PADDING_MEDIUM) | ->addPadding(PHUI::PADDING_MEDIUM) | ||||
->addMargin(PHUI::MARGIN_LARGE) | ->addMargin(PHUI::MARGIN_LARGE) | ||||
->setBorder(true) | ->setBorder(true) | ||||
->appendChild($pager); | ->appendChild($pager); | ||||
$nav->appendChild($pager_box); | $nav->appendChild($pager_box); | ||||
} | } | ||||
} | } | ||||
} catch (PhabricatorTypeaheadInvalidTokenException $ex) { | |||||
$errors[] = pht( | |||||
'This query specifies an invalid parameter. Review the '. | |||||
'query parameters and correct errors.'); | |||||
} | |||||
} | |||||
if ($errors) { | |||||
$errors = id(new PHUIInfoView()) | |||||
->setTitle(pht('Query Errors')) | |||||
->setErrors($errors); | |||||
} | } | ||||
if ($errors) { | if ($errors) { | ||||
$nav->appendChild($errors); | $nav->appendChild($errors); | ||||
} | } | ||||
if ($named_query) { | if ($named_query) { | ||||
$title = $named_query->getQueryName(); | $title = $named_query->getQueryName(); | ||||
▲ Show 20 Lines • Show All 106 Lines • Show Last 20 Lines |