Page MenuHomePhabricator

D18393.id44207.diff
No OneTemporary

D18393.id44207.diff

diff --git a/src/applications/differential/constants/DifferentialLegacyQuery.php b/src/applications/differential/constants/DifferentialLegacyQuery.php
--- a/src/applications/differential/constants/DifferentialLegacyQuery.php
+++ b/src/applications/differential/constants/DifferentialLegacyQuery.php
@@ -28,8 +28,12 @@
$status));
}
+ return self::getLegacyValues($map[$status]);
+ }
+
+ public static function getLegacyValues(array $modern_values) {
$values = array();
- foreach ($map[$status] as $status_constant) {
+ foreach ($modern_values as $status_constant) {
$status_object = DifferentialRevisionStatus::newForStatus(
$status_constant);
diff --git a/src/applications/differential/query/DifferentialRevisionQuery.php b/src/applications/differential/query/DifferentialRevisionQuery.php
--- a/src/applications/differential/query/DifferentialRevisionQuery.php
+++ b/src/applications/differential/query/DifferentialRevisionQuery.php
@@ -25,6 +25,7 @@
private $repositoryPHIDs;
private $updatedEpochMin;
private $updatedEpochMax;
+ private $statuses;
const ORDER_MODIFIED = 'order-modified';
const ORDER_CREATED = 'order-created';
@@ -146,6 +147,11 @@
return $this;
}
+ public function withStatuses(array $statuses) {
+ $this->statuses = $statuses;
+ return $this;
+ }
+
/**
* Filter results to revisions on given branches.
@@ -705,6 +711,13 @@
$statuses);
}
+ if ($this->statuses !== null) {
+ $where[] = qsprintf(
+ $conn_r,
+ 'r.status in (%Ls)',
+ DifferentialLegacyQuery::getLegacyValues($this->statuses));
+ }
+
$where[] = $this->buildWhereClauseParts($conn_r);
return $this->formatWhereClause($where);
}
diff --git a/src/applications/differential/query/DifferentialRevisionSearchEngine.php b/src/applications/differential/query/DifferentialRevisionSearchEngine.php
--- a/src/applications/differential/query/DifferentialRevisionSearchEngine.php
+++ b/src/applications/differential/query/DifferentialRevisionSearchEngine.php
@@ -41,8 +41,8 @@
$query->withRepositoryPHIDs($map['repositoryPHIDs']);
}
- if ($map['status']) {
- $query->withStatus($map['status']);
+ if ($map['statuses']) {
+ $query->withStatuses($map['statuses']);
}
return $query;
@@ -77,10 +77,10 @@
->setDatasource(new DiffusionRepositoryFunctionDatasource())
->setDescription(
pht('Find revisions from specific repositories.')),
- id(new PhabricatorSearchSelectField())
- ->setLabel(pht('Status'))
- ->setKey('status')
- ->setOptions($this->getStatusOptions())
+ id(new PhabricatorSearchDatasourceField())
+ ->setLabel(pht('Statuses'))
+ ->setKey('statuses')
+ ->setDatasource(new DifferentialRevisionStatusFunctionDatasource())
->setDescription(
pht('Find revisions with particular statuses.')),
);
@@ -115,7 +115,7 @@
return $query
->setParameter('responsiblePHIDs', array($viewer->getPHID()))
- ->setParameter('status', DifferentialLegacyQuery::STATUS_OPEN)
+ ->setParameter('statuses', array('open()'))
->setParameter('bucket', $bucket_key);
case 'authored':
return $query

File Metadata

Mime Type
text/plain
Expires
Mon, Mar 31, 8:22 PM (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7728344
Default Alt Text
D18393.id44207.diff (3 KB)

Event Timeline