Path: blob/master/src/applications/packages/query/PhabricatorPackagesVersionSearchEngine.php
12242 views
<?php12final class PhabricatorPackagesVersionSearchEngine3extends PhabricatorApplicationSearchEngine {45public function getResultTypeDescription() {6return pht('Package Versions');7}89public function getApplicationClassName() {10return 'PhabricatorPackagesApplication';11}1213public function newQuery() {14return id(new PhabricatorPackagesVersionQuery());15}1617public function canUseInPanelContext() {18return false;19}2021protected function buildQueryFromParameters(array $map) {22$query = $this->newQuery();2324if ($map['match'] !== null) {25$query->withNameNgrams($map['match']);26}2728if ($map['packagePHIDs']) {29$query->withPackagePHIDs($map['packagePHIDs']);30}3132return $query;33}3435protected function buildCustomSearchFields() {36return array(37id(new PhabricatorSearchTextField())38->setLabel(pht('Name Contains'))39->setKey('match')40->setDescription(pht('Search for versions by name substring.')),41id(new PhabricatorSearchDatasourceField())42->setLabel(pht('Packages'))43->setKey('packagePHIDs')44->setAliases(array('packagePHID', 'package', 'packages'))45->setDatasource(new PhabricatorPackagesPackageDatasource())46->setDescription(pht('Search for versions by package.')),47);48}49protected function getURI($path) {50return '/packages/version/'.$path;51}5253protected function getBuiltinQueryNames() {54$names = array(55'all' => pht('All Versions'),56);5758return $names;59}6061public function buildSavedQueryFromBuiltin($query_key) {62$query = $this->newSavedQuery();63$query->setQueryKey($query_key);6465switch ($query_key) {66case 'all':67return $query;68}6970return parent::buildSavedQueryFromBuiltin($query_key);71}7273protected function renderResultList(74array $versions,75PhabricatorSavedQuery $query,76array $handles) {7778assert_instances_of($versions, 'PhabricatorPackagesVersion');79$viewer = $this->requireViewer();8081$list = id(new PhabricatorPackagesVersionListView())82->setViewer($viewer)83->setVersions($versions)84->newListView();8586return id(new PhabricatorApplicationSearchResultView())87->setObjectList($list)88->setNoDataString(pht('No versions found.'));89}9091}929394