Differential D12444 Diff 29887 src/applications/differential/query/DifferentialRevisionSearchEngine.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/differential/query/DifferentialRevisionSearchEngine.php
Show First 20 Lines • Show All 61 Lines • ▼ Show 20 Lines | final class DifferentialRevisionSearchEngine | ||||
} | } | ||||
public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { | public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) { | ||||
$query = id(new DifferentialRevisionQuery()) | $query = id(new DifferentialRevisionQuery()) | ||||
->needFlags(true) | ->needFlags(true) | ||||
->needDrafts(true) | ->needDrafts(true) | ||||
->needRelationships(true); | ->needRelationships(true); | ||||
$datasource = id(new PhabricatorTypeaheadUserParameterizedDatasource()) | |||||
->setViewer($this->requireViewer()); | |||||
$responsible_phids = $saved->getParameter('responsiblePHIDs', array()); | $responsible_phids = $saved->getParameter('responsiblePHIDs', array()); | ||||
$responsible_phids = $datasource->evaluateTokens($responsible_phids); | |||||
if ($responsible_phids) { | if ($responsible_phids) { | ||||
$query->withResponsibleUsers($responsible_phids); | $query->withResponsibleUsers($responsible_phids); | ||||
} | } | ||||
$author_phids = $saved->getParameter('authorPHIDs', array()); | $author_phids = $saved->getParameter('authorPHIDs', array()); | ||||
if ($author_phids) { | if ($author_phids) { | ||||
$query->withAuthors($author_phids); | $query->withAuthors($author_phids); | ||||
} | } | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | public function buildSearchForm( | ||||
$repository_phids = $saved->getParameter('repositoryPHIDs', array()); | $repository_phids = $saved->getParameter('repositoryPHIDs', array()); | ||||
$only_draft = $saved->getParameter('draft', false); | $only_draft = $saved->getParameter('draft', false); | ||||
$form | $form | ||||
->appendControl( | ->appendControl( | ||||
id(new AphrontFormTokenizerControl()) | id(new AphrontFormTokenizerControl()) | ||||
->setLabel(pht('Responsible Users')) | ->setLabel(pht('Responsible Users')) | ||||
->setName('responsibles') | ->setName('responsibles') | ||||
->setDatasource(new PhabricatorPeopleDatasource()) | ->setDatasource(new PhabricatorTypeaheadUserParameterizedDatasource()) | ||||
->setValue($responsible_phids)) | ->setValue($responsible_phids)) | ||||
->appendControl( | ->appendControl( | ||||
id(new AphrontFormTokenizerControl()) | id(new AphrontFormTokenizerControl()) | ||||
->setLabel(pht('Authors')) | ->setLabel(pht('Authors')) | ||||
->setName('authors') | ->setName('authors') | ||||
->setDatasource(new PhabricatorPeopleDatasource()) | ->setDatasource(new PhabricatorPeopleDatasource()) | ||||
->setValue($author_phids)) | ->setValue($author_phids)) | ||||
->appendControl( | ->appendControl( | ||||
▲ Show 20 Lines • Show All 62 Lines • ▼ Show 20 Lines | public function buildSavedQueryFromBuiltin($query_key) { | ||||
$query = $this->newSavedQuery(); | $query = $this->newSavedQuery(); | ||||
$query->setQueryKey($query_key); | $query->setQueryKey($query_key); | ||||
$viewer = $this->requireViewer(); | $viewer = $this->requireViewer(); | ||||
switch ($query_key) { | switch ($query_key) { | ||||
case 'active': | case 'active': | ||||
return $query | return $query | ||||
->setParameter('responsiblePHIDs', array($viewer->getPHID())) | ->setParameter('responsiblePHIDs', array('viewer()')) | ||||
->setParameter('status', DifferentialRevisionQuery::STATUS_OPEN); | ->setParameter('status', DifferentialRevisionQuery::STATUS_OPEN); | ||||
case 'authored': | case 'authored': | ||||
return $query | return $query | ||||
->setParameter('authorPHIDs', array($viewer->getPHID())); | ->setParameter('authorPHIDs', array($viewer->getPHID())); | ||||
case 'all': | case 'all': | ||||
return $query; | return $query; | ||||
} | } | ||||
▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines |