Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/controller/PhabricatorSearchController.php
<?php | <?php | ||||
final class PhabricatorSearchController | final class PhabricatorSearchController | ||||
extends PhabricatorSearchBaseController { | extends PhabricatorSearchBaseController { | ||||
const SCOPE_CURRENT_APPLICATION = 'application'; | const SCOPE_CURRENT_APPLICATION = 'application'; | ||||
private $queryKey; | |||||
public function shouldAllowPublic() { | public function shouldAllowPublic() { | ||||
return true; | return true; | ||||
} | } | ||||
public function willProcessRequest(array $data) { | public function handleRequest(AphrontRequest $request) { | ||||
$this->queryKey = idx($data, 'queryKey'); | $viewer = $this->getViewer(); | ||||
} | |||||
public function processRequest() { | |||||
$request = $this->getRequest(); | |||||
$viewer = $request->getUser(); | |||||
if ($request->getStr('jump') != 'no') { | if ($request->getStr('jump') != 'no') { | ||||
$pref_jump = PhabricatorUserPreferences::PREFERENCE_SEARCHBAR_JUMP; | $pref_jump = PhabricatorUserPreferences::PREFERENCE_SEARCHBAR_JUMP; | ||||
if ($viewer->loadPreferences($pref_jump, 1)) { | if ($viewer->loadPreferences($pref_jump, 1)) { | ||||
$response = PhabricatorJumpNavHandler::getJumpResponse( | $response = PhabricatorJumpNavHandler::getJumpResponse( | ||||
$viewer, | $viewer, | ||||
$request->getStr('query')); | $request->getStr('query')); | ||||
if ($response) { | if ($response) { | ||||
▲ Show 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | if ($request->getBool('search:primary')) { | ||||
unset($unguarded); | unset($unguarded); | ||||
$query_key = $saved->getQueryKey(); | $query_key = $saved->getQueryKey(); | ||||
$results_uri = $engine->getQueryResultsPageURI($query_key).'#R'; | $results_uri = $engine->getQueryResultsPageURI($query_key).'#R'; | ||||
return id(new AphrontRedirectResponse())->setURI($results_uri); | return id(new AphrontRedirectResponse())->setURI($results_uri); | ||||
} | } | ||||
$controller = id(new PhabricatorApplicationSearchController()) | $controller = id(new PhabricatorApplicationSearchController()) | ||||
->setQueryKey($this->queryKey) | ->setQueryKey($request->getURIData('queryKey')) | ||||
->setSearchEngine($engine) | ->setSearchEngine($engine) | ||||
->setNavigation($this->buildSideNavView()); | ->setNavigation($this->buildSideNavView()); | ||||
return $this->delegateToController($controller); | return $this->delegateToController($controller); | ||||
} | } | ||||
public function buildSideNavView($for_app = false) { | public function buildSideNavView($for_app = false) { | ||||
$viewer = $this->getRequest()->getUser(); | $viewer = $this->getViewer(); | ||||
$nav = new AphrontSideNavFilterView(); | $nav = new AphrontSideNavFilterView(); | ||||
$nav->setBaseURI(new PhutilURI($this->getApplicationURI())); | $nav->setBaseURI(new PhutilURI($this->getApplicationURI())); | ||||
id(new PhabricatorSearchApplicationSearchEngine()) | id(new PhabricatorSearchApplicationSearchEngine()) | ||||
->setViewer($viewer) | ->setViewer($viewer) | ||||
->addNavigationItems($nav->getMenu()); | ->addNavigationItems($nav->getMenu()); | ||||
$nav->selectFilter(null); | $nav->selectFilter(null); | ||||
return $nav; | return $nav; | ||||
} | } | ||||
} | } |