Page MenuHomePhabricator

D17153.id41251.diff
No OneTemporary

D17153.id41251.diff

diff --git a/src/applications/project/query/PhabricatorProjectSearchEngine.php b/src/applications/project/query/PhabricatorProjectSearchEngine.php
--- a/src/applications/project/query/PhabricatorProjectSearchEngine.php
+++ b/src/applications/project/query/PhabricatorProjectSearchEngine.php
@@ -13,8 +13,7 @@
public function newQuery() {
return id(new PhabricatorProjectQuery())
- ->needImages(true)
- ->withIsMilestone(false);
+ ->needImages(true);
}
protected function buildCustomSearchFields() {
@@ -34,6 +33,17 @@
->setLabel(pht('Status'))
->setKey('status')
->setOptions($this->getStatusOptions()),
+ id(new PhabricatorSearchThreeStateField())
+ ->setLabel(pht('Milestones'))
+ ->setKey('isMilestone')
+ ->setOptions(
+ pht('(Show All)'),
+ pht('Show Only Milestones'),
+ pht('Hide Milestones'))
+ ->setDescription(
+ pht(
+ 'Pass true to find only milestones, or false to omit '.
+ 'milestones.')),
id(new PhabricatorSearchCheckboxesField())
->setLabel(pht('Icons'))
->setKey('icons')
@@ -77,6 +87,10 @@
$query->withColors($map['colors']);
}
+ if ($map['isMilestone'] !== null) {
+ $query->withIsMilestone($map['isMilestone']);
+ }
+
return $query;
}
@@ -103,6 +117,9 @@
$viewer_phid = $this->requireViewer()->getPHID();
+ // By default, do not show milestones in the list view.
+ $query->setParameter('isMilestone', false);
+
switch ($query_key) {
case 'all':
return $query;
diff --git a/src/applications/project/storage/PhabricatorProject.php b/src/applications/project/storage/PhabricatorProject.php
--- a/src/applications/project/storage/PhabricatorProject.php
+++ b/src/applications/project/storage/PhabricatorProject.php
@@ -742,6 +742,10 @@
->setType('string')
->setDescription(pht('Primary slug/hashtag.')),
id(new PhabricatorConduitSearchFieldSpecification())
+ ->setKey('milestone')
+ ->setType('int?')
+ ->setDescription(pht('For milestones, milestone sequence number.')),
+ id(new PhabricatorConduitSearchFieldSpecification())
->setKey('icon')
->setType('map<string, wild>')
->setDescription(pht('Information about the project icon.')),
@@ -756,9 +760,16 @@
$color_key = $this->getColor();
$color_name = PhabricatorProjectIconSet::getColorName($color_key);
+ if ($this->isMilestone()) {
+ $milestone = (int)$this->getMilestoneNumber();
+ } else {
+ $milestone = null;
+ }
+
return array(
'name' => $this->getName(),
'slug' => $this->getPrimarySlug(),
+ 'milestone' => $milestone,
'icon' => array(
'key' => $this->getDisplayIconKey(),
'name' => $this->getDisplayIconName(),

File Metadata

Mime Type
text/plain
Expires
Oct 18 2024, 3:06 PM (4 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6727488
Default Alt Text
D17153.id41251.diff (2 KB)

Event Timeline