diff --git a/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php b/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php index 8fd3baeb54..d171b80999 100644 --- a/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php +++ b/src/applications/repository/query/PhabricatorRepositoryPushLogSearchEngine.php @@ -1,108 +1,85 @@ setParameter( - 'repositoryPHIDs', - $this->readPHIDsFromRequest( - $request, - 'repositories', - array( - PhabricatorRepositoryRepositoryPHIDType::TYPECONST, - ))); - - $saved->setParameter( - 'pusherPHIDs', - $this->readUsersFromRequest( - $request, - 'pushers')); - - return $saved; + public function newQuery() { + return new PhabricatorRepositoryPushLogQuery(); } - public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { - $query = id(new PhabricatorRepositoryPushLogQuery()); + protected function buildQueryFromParameters(array $map) { + $query = $this->newQuery(); - $repository_phids = $saved->getParameter('repositoryPHIDs'); - if ($repository_phids) { - $query->withRepositoryPHIDs($repository_phids); + if ($map['repositoryPHIDs']) { + $query->withRepositoryPHIDs($map['repositoryPHIDs']); } - $pusher_phids = $saved->getParameter('pusherPHIDs'); - if ($pusher_phids) { - $query->withPusherPHIDs($pusher_phids); + if ($map['pusherPHIDs']) { + $query->withPusherPHIDs($map['pusherPHIDs']); } return $query; } - public function buildSearchForm( - AphrontFormView $form, - PhabricatorSavedQuery $saved_query) { - - $repository_phids = $saved_query->getParameter('repositoryPHIDs', array()); - $pusher_phids = $saved_query->getParameter('pusherPHIDs', array()); - - $form - ->appendControl( - id(new AphrontFormTokenizerControl()) - ->setDatasource(new DiffusionRepositoryDatasource()) - ->setName('repositories') - ->setLabel(pht('Repositories')) - ->setValue($repository_phids)) - ->appendControl( - id(new AphrontFormTokenizerControl()) - ->setDatasource(new PhabricatorPeopleDatasource()) - ->setName('pushers') - ->setLabel(pht('Pushers')) - ->setValue($pusher_phids)); + protected function buildCustomSearchFields() { + return array( + id(new PhabricatorSearchDatasourceField()) + ->setDatasource(new DiffusionRepositoryDatasource()) + ->setKey('repositoryPHIDs') + ->setAliases(array('repository', 'repositories', 'repositoryPHID')) + ->setLabel(pht('Repositories')) + ->setDescription( + pht('Search for pull logs for specific repositories.')), + id(new PhabricatorUsersSearchField()) + ->setKey('pusherPHIDs') + ->setAliases(array('pusher', 'pushers', 'pusherPHID')) + ->setLabel(pht('Pushers')) + ->setDescription( + pht('Search for pull logs by specific users.')), + ); } protected function getURI($path) { return '/diffusion/pushlog/'.$path; } protected function getBuiltinQueryNames() { return array( 'all' => pht('All Push Logs'), ); } public function buildSavedQueryFromBuiltin($query_key) { $query = $this->newSavedQuery(); $query->setQueryKey($query_key); switch ($query_key) { case 'all': return $query; } return parent::buildSavedQueryFromBuiltin($query_key); } protected function renderResultList( array $logs, PhabricatorSavedQuery $query, array $handles) { $table = id(new DiffusionPushLogListView()) ->setViewer($this->requireViewer()) ->setLogs($logs); return id(new PhabricatorApplicationSearchResultView()) ->setTable($table); } }