Differential D13589 Diff 33531 src/applications/dashboard/customfield/PhabricatorDashboardPanelSearchApplicationCustomField.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/dashboard/customfield/PhabricatorDashboardPanelSearchApplicationCustomField.php
| <?php | <?php | ||||
| final class PhabricatorDashboardPanelSearchApplicationCustomField | final class PhabricatorDashboardPanelSearchApplicationCustomField | ||||
| extends PhabricatorStandardCustomField { | extends PhabricatorStandardCustomField { | ||||
| public function getFieldType() { | public function getFieldType() { | ||||
| return 'search.application'; | return 'search.application'; | ||||
| } | } | ||||
| public function shouldAppearInApplicationSearch() { | public function shouldAppearInApplicationSearch() { | ||||
| return false; | return false; | ||||
| } | } | ||||
| public function renderEditControl(array $handles) { | public function renderEditControl(array $handles) { | ||||
| $engines = id(new PhutilClassMapQuery()) | |||||
| $engines = id(new PhutilSymbolLoader()) | |||||
| ->setAncestorClass('PhabricatorApplicationSearchEngine') | ->setAncestorClass('PhabricatorApplicationSearchEngine') | ||||
| ->loadObjects(); | ->setFilterMethod('canUseInPanelContext') | ||||
| $engines = mfilter($engines, 'canUseInPanelContext'); | ->execute(); | ||||
epriestley: I think it's reasonable to assume that this is invariant across requests and configuration… | |||||
| $all_apps = id(new PhabricatorApplicationQuery()) | $all_apps = id(new PhabricatorApplicationQuery()) | ||||
| ->setViewer($this->getViewer()) | ->setViewer($this->getViewer()) | ||||
| ->withUnlisted(false) | ->withUnlisted(false) | ||||
| ->withInstalled(true) | ->withInstalled(true) | ||||
| ->execute(); | ->execute(); | ||||
| foreach ($engines as $index => $engine) { | foreach ($engines as $index => $engine) { | ||||
| if (!isset($all_apps[$engine->getApplicationClassName()])) { | if (!isset($all_apps[$engine->getApplicationClassName()])) { | ||||
| unset($engines[$index]); | unset($engines[$index]); | ||||
| Show All 26 Lines | |||||
I think it's reasonable to assume that this is invariant across requests and configuration can't reasonably affect a SearchEngine's suitability for use in panel contexts.