Differential D16981 Diff 41025 src/applications/release/typeahead/PhabricatorReleaseReleaseDatasource.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/release/typeahead/PhabricatorReleaseReleaseDatasource.php
- This file was added.
<?php | |||||
final class PhabricatorReleaseReleaseDatasource | |||||
extends PhabricatorTypeaheadDatasource { | |||||
public function getBrowseTitle() { | |||||
return pht('Releases'); | |||||
} | |||||
public function getPlaceholderText() { | |||||
return pht('Type a release name...'); | |||||
} | |||||
public function getDatasourceApplicationClass() { | |||||
return 'PhabricatorReleaseApplication'; | |||||
} | |||||
public function withTemplateKeys($template_keys) { | |||||
$params = $this->getParameters(); | |||||
$params['template_keys'] = $template_keys; | |||||
$this->setParameters($params); | |||||
return $this; | |||||
} | |||||
public function loadResults() { | |||||
$viewer = $this->getViewer(); | |||||
$raw_query = $this->getRawQuery(); | |||||
$query = id(new PhabricatorReleaseReleaseQuery()) | |||||
->setOrder('select') | |||||
->withDatasourceQuery($raw_query); | |||||
$template_keys = $this->getParameter('template_keys'); | |||||
if ($template_keys) { | |||||
$query->withTemplateKeys($template_keys); | |||||
} | |||||
$releases = $this->executeQuery($query); | |||||
$results = array(); | |||||
foreach ($releases as $release) { | |||||
$name = $release->getName(); | |||||
$display_name = $release->getMonogram().' '.$name; | |||||
$token = id(new PhabricatorTypeaheadResult()) | |||||
->setName($name) | |||||
->setDisplayName($display_name) | |||||
->setURI($release->getURI()) | |||||
->addAttribute($release->getReleaseTemplateName()) | |||||
->addAttribute($release->getStateName()) | |||||
->setPHID($release->getPHID()); | |||||
if ($release->isClosed()) { | |||||
$token | |||||
->setName('zz '.$name) | |||||
->setClosed('old'); | |||||
} | |||||
$results[] = $token; | |||||
} | |||||
return $results; | |||||
} | |||||
} |