Differential D14268 Diff 34547 src/applications/search/controller/PhabricatorSearchOrderController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/search/controller/PhabricatorSearchOrderController.php
<?php | <?php | ||||
final class PhabricatorSearchOrderController | final class PhabricatorSearchOrderController | ||||
extends PhabricatorSearchBaseController { | extends PhabricatorSearchBaseController { | ||||
private $engineClass; | public function handleRequest(AphrontRequest $request) { | ||||
$viewer = $this->getViewer(); | |||||
public function willProcessRequest(array $data) { | $engine_class = $request->getURIData('engine'); | ||||
$this->engineClass = idx($data, 'engine'); | |||||
} | |||||
public function processRequest() { | |||||
$request = $this->getRequest(); | |||||
$user = $request->getUser(); | |||||
$request->validateCSRF(); | $request->validateCSRF(); | ||||
$base_class = 'PhabricatorApplicationSearchEngine'; | $base_class = 'PhabricatorApplicationSearchEngine'; | ||||
if (!is_subclass_of($this->engineClass, $base_class)) { | if (!is_subclass_of($engine_class, $base_class)) { | ||||
return new Aphront400Response(); | return new Aphront400Response(); | ||||
} | } | ||||
$engine = newv($this->engineClass, array()); | $engine = newv($engine_class, array()); | ||||
$engine->setViewer($user); | $engine->setViewer($viewer); | ||||
$queries = $engine->loadAllNamedQueries(); | $queries = $engine->loadAllNamedQueries(); | ||||
$queries = mpull($queries, null, 'getQueryKey'); | $queries = mpull($queries, null, 'getQueryKey'); | ||||
$order = $request->getStrList('order'); | $order = $request->getStrList('order'); | ||||
$queries = array_select_keys($queries, $order) + $queries; | $queries = array_select_keys($queries, $order) + $queries; | ||||
$sequence = 1; | $sequence = 1; | ||||
Show All 9 Lines |