mirror of
https://we.phorge.it/source/phorge.git
synced 2025-03-29 12:38:12 +01:00
Add a basic icon typeahead
Summary: Fixes T11971, adds a basic typeahead for selecting an icon. Test Plan: http://local.phacility.com/typeahead/browse/PhabricatorIconDatasource/ {F2561013} Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Maniphest Tasks: T11971 Differential Revision: https://secure.phabricator.com/D17301
This commit is contained in:
parent
fd0591e168
commit
f54dfe7567
2 changed files with 48 additions and 0 deletions
|
@ -2848,6 +2848,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorIDsSearchEngineExtension' => 'applications/search/engineextension/PhabricatorIDsSearchEngineExtension.php',
|
'PhabricatorIDsSearchEngineExtension' => 'applications/search/engineextension/PhabricatorIDsSearchEngineExtension.php',
|
||||||
'PhabricatorIDsSearchField' => 'applications/search/field/PhabricatorIDsSearchField.php',
|
'PhabricatorIDsSearchField' => 'applications/search/field/PhabricatorIDsSearchField.php',
|
||||||
'PhabricatorIRCProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorIRCProtocolAdapter.php',
|
'PhabricatorIRCProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorIRCProtocolAdapter.php',
|
||||||
|
'PhabricatorIconDatasource' => 'applications/files/typeahead/PhabricatorIconDatasource.php',
|
||||||
'PhabricatorIconRemarkupRule' => 'applications/macro/markup/PhabricatorIconRemarkupRule.php',
|
'PhabricatorIconRemarkupRule' => 'applications/macro/markup/PhabricatorIconRemarkupRule.php',
|
||||||
'PhabricatorIconSet' => 'applications/files/iconset/PhabricatorIconSet.php',
|
'PhabricatorIconSet' => 'applications/files/iconset/PhabricatorIconSet.php',
|
||||||
'PhabricatorIconSetEditField' => 'applications/transactions/editfield/PhabricatorIconSetEditField.php',
|
'PhabricatorIconSetEditField' => 'applications/transactions/editfield/PhabricatorIconSetEditField.php',
|
||||||
|
@ -7907,6 +7908,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorIDsSearchEngineExtension' => 'PhabricatorSearchEngineExtension',
|
'PhabricatorIDsSearchEngineExtension' => 'PhabricatorSearchEngineExtension',
|
||||||
'PhabricatorIDsSearchField' => 'PhabricatorSearchField',
|
'PhabricatorIDsSearchField' => 'PhabricatorSearchField',
|
||||||
'PhabricatorIRCProtocolAdapter' => 'PhabricatorProtocolAdapter',
|
'PhabricatorIRCProtocolAdapter' => 'PhabricatorProtocolAdapter',
|
||||||
|
'PhabricatorIconDatasource' => 'PhabricatorTypeaheadDatasource',
|
||||||
'PhabricatorIconRemarkupRule' => 'PhutilRemarkupRule',
|
'PhabricatorIconRemarkupRule' => 'PhutilRemarkupRule',
|
||||||
'PhabricatorIconSet' => 'Phobject',
|
'PhabricatorIconSet' => 'Phobject',
|
||||||
'PhabricatorIconSetEditField' => 'PhabricatorEditField',
|
'PhabricatorIconSetEditField' => 'PhabricatorEditField',
|
||||||
|
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
final class PhabricatorIconDatasource extends PhabricatorTypeaheadDatasource {
|
||||||
|
|
||||||
|
public function getPlaceholderText() {
|
||||||
|
return pht('Type an icon name...');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBrowseTitle() {
|
||||||
|
return pht('Browse Icons');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getDatasourceApplicationClass() {
|
||||||
|
return 'PhabricatorFilesApplication';
|
||||||
|
}
|
||||||
|
|
||||||
|
public function loadResults() {
|
||||||
|
$results = $this->buildResults();
|
||||||
|
return $this->filterResultsAgainstTokens($results);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function renderSpecialTokens(array $values) {
|
||||||
|
return $this->renderTokensFromResults($this->buildResults(), $values);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function buildResults() {
|
||||||
|
$raw_query = $this->getRawQuery();
|
||||||
|
|
||||||
|
$icons = id(new PHUIIconView())->getIcons();
|
||||||
|
|
||||||
|
$results = array();
|
||||||
|
foreach ($icons as $icon) {
|
||||||
|
$display_name = str_replace('fa-', '', $icon);
|
||||||
|
$result = id(new PhabricatorTypeaheadResult())
|
||||||
|
->setPHID($icon)
|
||||||
|
->setName($icon)
|
||||||
|
->setIcon($icon)
|
||||||
|
->setDisplayname($display_name)
|
||||||
|
->addAttribute($icon);
|
||||||
|
|
||||||
|
$results[$icon] = $result;
|
||||||
|
}
|
||||||
|
return $results;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue