Path: blob/master/src/applications/almanac/query/AlmanacInterfaceSearchEngine.php
12256 views
<?php12final class AlmanacInterfaceSearchEngine3extends PhabricatorApplicationSearchEngine {45public function getResultTypeDescription() {6return pht('Almanac Interfaces');7}89public function getApplicationClassName() {10return 'PhabricatorAlmanacApplication';11}1213public function newQuery() {14return new AlmanacInterfaceQuery();15}1617protected function buildCustomSearchFields() {18return array(19id(new PhabricatorPHIDsSearchField())20->setLabel(pht('Devices'))21->setKey('devicePHIDs')22->setAliases(array('device', 'devicePHID', 'devices'))23->setDescription(pht('Search for interfaces on particular devices.')),24);25}2627protected function buildQueryFromParameters(array $map) {28$query = $this->newQuery();2930if ($map['devicePHIDs']) {31$query->withDevicePHIDs($map['devicePHIDs']);32}3334return $query;35}3637protected function getURI($path) {38return '/almanac/interface/'.$path;39}4041protected function getBuiltinQueryNames() {42$names = array(43'all' => pht('All Interfaces'),44);4546return $names;47}4849public function buildSavedQueryFromBuiltin($query_key) {50$query = $this->newSavedQuery();51$query->setQueryKey($query_key);5253switch ($query_key) {54case 'all':55return $query;56}5758return parent::buildSavedQueryFromBuiltin($query_key);59}6061protected function renderResultList(62array $devices,63PhabricatorSavedQuery $query,64array $handles) {6566// For now, this SearchEngine just supports API access via Conduit.67throw new PhutilMethodNotImplementedException();68}6970}717273