Differential D17348 Diff 41726 src/applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/dashboard/typeahead/PhabricatorDashboardPanelDatasource.php
Show All 10 Lines | public function getPlaceholderText() { | ||||
return pht('Type a panel name...'); | return pht('Type a panel name...'); | ||||
} | } | ||||
public function getDatasourceApplicationClass() { | public function getDatasourceApplicationClass() { | ||||
return 'PhabricatorDashboardApplication'; | return 'PhabricatorDashboardApplication'; | ||||
} | } | ||||
public function loadResults() { | public function loadResults() { | ||||
$query = id(new PhabricatorDashboardPanelQuery()); | $results = $this->buildResults(); | ||||
return $this->filterResultsAgainstTokens($results); | |||||
} | |||||
protected function renderSpecialTokens(array $values) { | |||||
return $this->renderTokensFromResults($this->buildResults(), $values); | |||||
} | |||||
public function buildResults() { | |||||
$query = id(new PhabricatorDashboardPanelQuery()); | |||||
$panels = $this->executeQuery($query); | $panels = $this->executeQuery($query); | ||||
$results = array(); | $results = array(); | ||||
foreach ($panels as $panel) { | foreach ($panels as $panel) { | ||||
$impl = $panel->getImplementation(); | $impl = $panel->getImplementation(); | ||||
if ($impl) { | if ($impl) { | ||||
$type_text = $impl->getPanelTypeName(); | $type_text = $impl->getPanelTypeName(); | ||||
} else { | } else { | ||||
$type_text = nonempty($panel->getPanelType(), pht('Unknown Type')); | $type_text = nonempty($panel->getPanelType(), pht('Unknown Type')); | ||||
} | } | ||||
$id = $panel->getID(); | |||||
$monogram = $panel->getMonogram(); | |||||
$properties = $panel->getProperties(); | |||||
$result = id(new PhabricatorTypeaheadResult()) | $result = id(new PhabricatorTypeaheadResult()) | ||||
->setName($panel->getName()) | ->setName($panel->getName()) | ||||
->setPHID($panel->getPHID()) | ->setDisplayName($monogram.' '.$panel->getName()) | ||||
->setPHID($id) | |||||
->setIcon($impl->getIcon()) | |||||
->addAttribute($type_text); | ->addAttribute($type_text); | ||||
if (!empty($properties['class'])) { | |||||
$result->addAttribute($properties['class']); | |||||
} | |||||
if ($panel->getIsArchived()) { | if ($panel->getIsArchived()) { | ||||
$result->setClosed(pht('Archived')); | $result->setClosed(pht('Archived')); | ||||
} | } | ||||
$results[] = $result; | $results[$id] = $result; | ||||
} | } | ||||
return $this->filterResultsAgainstTokens($results); | return $results; | ||||
} | } | ||||
} | } |