Path: blob/master/src/applications/drydock/query/DrydockAuthorizationSearchEngine.php
12256 views
<?php12final class DrydockAuthorizationSearchEngine3extends PhabricatorApplicationSearchEngine {45private $blueprint;67public function setBlueprint(DrydockBlueprint $blueprint) {8$this->blueprint = $blueprint;9return $this;10}1112public function getBlueprint() {13return $this->blueprint;14}1516public function getResultTypeDescription() {17return pht('Drydock Authorizations');18}1920public function getApplicationClassName() {21return 'PhabricatorDrydockApplication';22}2324public function canUseInPanelContext() {25return false;26}2728public function newQuery() {29$query = new DrydockAuthorizationQuery();3031$blueprint = $this->getBlueprint();32if ($blueprint) {33$query->withBlueprintPHIDs(array($blueprint->getPHID()));34}3536return $query;37}3839protected function buildQueryFromParameters(array $map) {40$query = $this->newQuery();4142if ($map['blueprintPHIDs']) {43$query->withBlueprintPHIDs($map['blueprintPHIDs']);44}4546if ($map['objectPHIDs']) {47$query->withObjectPHIDs($map['objectPHIDs']);48}4950return $query;51}5253protected function buildCustomSearchFields() {54return array(55id(new PhabricatorSearchDatasourceField())56->setLabel(pht('Blueprints'))57->setKey('blueprintPHIDs')58->setConduitParameterType(new ConduitPHIDListParameterType())59->setDescription(pht('Search authorizations for specific blueprints.'))60->setAliases(array('blueprint', 'blueprints'))61->setDatasource(new DrydockBlueprintDatasource()),62id(new PhabricatorPHIDsSearchField())63->setLabel(pht('Objects'))64->setKey('objectPHIDs')65->setDescription(pht('Search authorizations from specific objects.'))66->setAliases(array('object', 'objects')),67);68}6970protected function getHiddenFields() {71return array(72'blueprintPHIDs',73'objectPHIDs',74);75}7677protected function getURI($path) {78$blueprint = $this->getBlueprint();79if (!$blueprint) {80throw new PhutilInvalidStateException('setBlueprint');81}82$id = $blueprint->getID();83return "/drydock/blueprint/{$id}/authorizations/".$path;84}8586protected function getBuiltinQueryNames() {87return array(88'all' => pht('All Authorizations'),89);90}9192public function buildSavedQueryFromBuiltin($query_key) {93$query = $this->newSavedQuery();94$query->setQueryKey($query_key);9596switch ($query_key) {97case 'all':98return $query;99}100101return parent::buildSavedQueryFromBuiltin($query_key);102}103104protected function renderResultList(105array $authorizations,106PhabricatorSavedQuery $query,107array $handles) {108109$list = id(new DrydockAuthorizationListView())110->setUser($this->requireViewer())111->setAuthorizations($authorizations);112113$result = new PhabricatorApplicationSearchResultView();114$result->setTable($list);115116return $result;117}118119}120121122