Differential D14268 Diff 34547 src/applications/search/controller/PhabricatorSearchEditController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/controller/PhabricatorSearchEditController.php
<?php | <?php | ||||
final class PhabricatorSearchEditController | final class PhabricatorSearchEditController | ||||
extends PhabricatorSearchBaseController { | extends PhabricatorSearchBaseController { | ||||
private $queryKey; | public function handleRequest(AphrontRequest $request) { | ||||
$viewer = $this->getViewer(); | |||||
public function willProcessRequest(array $data) { | |||||
$this->queryKey = idx($data, 'queryKey'); | |||||
} | |||||
public function processRequest() { | |||||
$request = $this->getRequest(); | |||||
$user = $request->getUser(); | |||||
epriestley: `$id` is unused / not present in the URI? | |||||
$saved_query = id(new PhabricatorSavedQueryQuery()) | $saved_query = id(new PhabricatorSavedQueryQuery()) | ||||
->setViewer($user) | ->setViewer($viewer) | ||||
->withQueryKeys(array($this->queryKey)) | ->withQueryKeys(array($request->getURIData('queryKey'))) | ||||
->executeOne(); | ->executeOne(); | ||||
if (!$saved_query) { | if (!$saved_query) { | ||||
return new Aphront404Response(); | return new Aphront404Response(); | ||||
} | } | ||||
$engine = $saved_query->newEngine()->setViewer($user); | $engine = $saved_query->newEngine()->setViewer($viewer); | ||||
$complete_uri = $engine->getQueryManagementURI(); | $complete_uri = $engine->getQueryManagementURI(); | ||||
$cancel_uri = $complete_uri; | $cancel_uri = $complete_uri; | ||||
$named_query = id(new PhabricatorNamedQueryQuery()) | $named_query = id(new PhabricatorNamedQueryQuery()) | ||||
->setViewer($user) | ->setViewer($viewer) | ||||
->withQueryKeys(array($saved_query->getQueryKey())) | ->withQueryKeys(array($saved_query->getQueryKey())) | ||||
->withUserPHIDs(array($user->getPHID())) | ->withUserPHIDs(array($viewer->getPHID())) | ||||
->executeOne(); | ->executeOne(); | ||||
if (!$named_query) { | if (!$named_query) { | ||||
$named_query = id(new PhabricatorNamedQuery()) | $named_query = id(new PhabricatorNamedQuery()) | ||||
->setUserPHID($user->getPHID()) | ->setUserPHID($viewer->getPHID()) | ||||
->setQueryKey($saved_query->getQueryKey()) | ->setQueryKey($saved_query->getQueryKey()) | ||||
->setEngineClassName($saved_query->getEngineClassName()); | ->setEngineClassName($saved_query->getEngineClassName()); | ||||
// If we haven't saved the query yet, this is a "Save..." operation, so | // If we haven't saved the query yet, this is a "Save..." operation, so | ||||
// take the user back to the query if they cancel instead of back to the | // take the user back to the query if they cancel instead of back to the | ||||
// management interface. | // management interface. | ||||
$cancel_uri = $engine->getQueryResultsPageURI( | $cancel_uri = $engine->getQueryResultsPageURI( | ||||
$saved_query->getQueryKey()); | $saved_query->getQueryKey()); | ||||
Show All 13 Lines | if ($request->isFormPost()) { | ||||
if (!$errors) { | if (!$errors) { | ||||
$named_query->save(); | $named_query->save(); | ||||
return id(new AphrontRedirectResponse())->setURI($complete_uri); | return id(new AphrontRedirectResponse())->setURI($complete_uri); | ||||
} | } | ||||
} | } | ||||
$form = id(new AphrontFormView()) | $form = id(new AphrontFormView()) | ||||
->setUser($user); | ->setUser($viewer); | ||||
$form->appendChild( | $form->appendChild( | ||||
id(new AphrontFormTextControl()) | id(new AphrontFormTextControl()) | ||||
->setName('name') | ->setName('name') | ||||
->setLabel(pht('Query Name')) | ->setLabel(pht('Query Name')) | ||||
->setValue($named_query->getQueryName()) | ->setValue($named_query->getQueryName()) | ||||
->setError($e_name)); | ->setError($e_name)); | ||||
Show All 30 Lines |
$id is unused / not present in the URI?