diff --git a/src/applications/herald/typeahead/HeraldRuleDatasource.php b/src/applications/herald/typeahead/HeraldRuleDatasource.php index c2db05c9ea..88343bd433 100644 --- a/src/applications/herald/typeahead/HeraldRuleDatasource.php +++ b/src/applications/herald/typeahead/HeraldRuleDatasource.php @@ -1,49 +1,57 @@ getViewer(); $raw_query = $this->getRawQuery(); - $rules = id(new HeraldRuleQuery()) - ->setViewer($viewer) - ->withDatasourceQuery($raw_query) - ->execute(); + $query = id(new HeraldRuleQuery()) + ->setViewer($viewer); + + if (preg_match('/^[hH]\d+\z/', $raw_query)) { + $id = trim($raw_query, 'hH'); + $id = (int)$id; + $query->withIDs(array($id)); + } else { + $query->withDatasourceQuery($raw_query); + } + + $rules = $query->execute(); $handles = id(new PhabricatorHandleQuery()) ->setViewer($viewer) ->withPHIDs(mpull($rules, 'getPHID')) ->execute(); $results = array(); foreach ($rules as $rule) { $handle = $handles[$rule->getPHID()]; $result = id(new PhabricatorTypeaheadResult()) ->setName($handle->getFullName()) ->setPHID($handle->getPHID()); if ($rule->getIsDisabled()) { $result->setClosed(pht('Archived')); } $results[] = $result; } return $results; } }