Path: blob/master/src/applications/nuance/query/NuanceSourceSearchEngine.php
12256 views
<?php12final class NuanceSourceSearchEngine3extends PhabricatorApplicationSearchEngine {45public function getApplicationClassName() {6return 'PhabricatorNuanceApplication';7}89public function getResultTypeDescription() {10return pht('Nuance Sources');11}1213public function newQuery() {14return new NuanceSourceQuery();15}1617protected function buildQueryFromParameters(array $map) {18$query = $this->newQuery();1920if ($map['match'] !== null) {21$query->withNameNgrams($map['match']);22}2324return $query;25}2627protected function buildCustomSearchFields() {28return array(29id(new PhabricatorSearchTextField())30->setLabel(pht('Name Contains'))31->setKey('match')32->setDescription(pht('Search for sources by name substring.')),33);34}3536protected function getURI($path) {37return '/nuance/source/'.$path;38}3940protected function getBuiltinQueryNames() {41$names = array(42'all' => pht('All Sources'),43);4445return $names;46}4748public function buildSavedQueryFromBuiltin($query_key) {49$query = $this->newSavedQuery();50$query->setQueryKey($query_key);5152switch ($query_key) {53case 'all':54return $query;55}5657return parent::buildSavedQueryFromBuiltin($query_key);58}5960protected function renderResultList(61array $sources,62PhabricatorSavedQuery $query,63array $handles) {64assert_instances_of($sources, 'NuanceSource');6566$viewer = $this->requireViewer();6768$list = new PHUIObjectItemListView();69$list->setUser($viewer);70foreach ($sources as $source) {71$item = id(new PHUIObjectItemView())72->setObjectName(pht('Source %d', $source->getID()))73->setHeader($source->getName())74->setHref($source->getURI());7576$item->addIcon('none', $source->getType());7778$list->addItem($item);79}8081$result = new PhabricatorApplicationSearchResultView();82$result->setObjectList($list);83$result->setNoDataString(pht('No sources found.'));8485return $result;86}8788}899091