Page MenuHomePhabricator

D17301.id.diff
No OneTemporary

D17301.id.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -2848,6 +2848,7 @@
'PhabricatorIDsSearchEngineExtension' => 'applications/search/engineextension/PhabricatorIDsSearchEngineExtension.php',
'PhabricatorIDsSearchField' => 'applications/search/field/PhabricatorIDsSearchField.php',
'PhabricatorIRCProtocolAdapter' => 'infrastructure/daemon/bot/adapter/PhabricatorIRCProtocolAdapter.php',
+ 'PhabricatorIconDatasource' => 'applications/files/typeahead/PhabricatorIconDatasource.php',
'PhabricatorIconRemarkupRule' => 'applications/macro/markup/PhabricatorIconRemarkupRule.php',
'PhabricatorIconSet' => 'applications/files/iconset/PhabricatorIconSet.php',
'PhabricatorIconSetEditField' => 'applications/transactions/editfield/PhabricatorIconSetEditField.php',
@@ -7907,6 +7908,7 @@
'PhabricatorIDsSearchEngineExtension' => 'PhabricatorSearchEngineExtension',
'PhabricatorIDsSearchField' => 'PhabricatorSearchField',
'PhabricatorIRCProtocolAdapter' => 'PhabricatorProtocolAdapter',
+ 'PhabricatorIconDatasource' => 'PhabricatorTypeaheadDatasource',
'PhabricatorIconRemarkupRule' => 'PhutilRemarkupRule',
'PhabricatorIconSet' => 'Phobject',
'PhabricatorIconSetEditField' => 'PhabricatorEditField',
diff --git a/src/applications/files/typeahead/PhabricatorIconDatasource.php b/src/applications/files/typeahead/PhabricatorIconDatasource.php
new file mode 100644
--- /dev/null
+++ b/src/applications/files/typeahead/PhabricatorIconDatasource.php
@@ -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;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 2:23 PM (3 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6274979
Default Alt Text
D17301.id.diff (2 KB)

Event Timeline