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.