aboutsummaryrefslogtreecommitdiffstats
path: root/lib/private/Search/SearchComposer.php
diff options
context:
space:
mode:
authorBenjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>2023-11-21 17:24:36 +0100
committerBenjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>2023-11-22 08:47:53 +0100
commit75e5854458d60e220f7989dc8290f9c570645dd2 (patch)
treea92484deab1a571d6c1f90b6dbce086240f4c280 /lib/private/Search/SearchComposer.php
parente1d3fb53bc8b2c378fc1cc020af802910e6d6f78 (diff)
downloadnextcloud-server-75e5854458d60e220f7989dc8290f9c570645dd2.tar.gz
nextcloud-server-75e5854458d60e220f7989dc8290f9c570645dd2.zip
feat(search): hide search provider
Some search providers can be hidden if they send `null` in `getOrder` Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
Diffstat (limited to 'lib/private/Search/SearchComposer.php')
-rw-r--r--lib/private/Search/SearchComposer.php7
1 files changed, 6 insertions, 1 deletions
diff --git a/lib/private/Search/SearchComposer.php b/lib/private/Search/SearchComposer.php
index b20d47aa94e..22da362bf40 100644
--- a/lib/private/Search/SearchComposer.php
+++ b/lib/private/Search/SearchComposer.php
@@ -184,6 +184,10 @@ class SearchComposer {
function (array $providerData) use ($route, $routeParameters) {
$appId = $providerData['appId'];
$provider = $providerData['provider'];
+ $order = $provider->getOrder($route, $routeParameters);
+ if ($order === null) {
+ return;
+ }
$triggers = [$provider->getId()];
if ($provider instanceof IFilteringProvider) {
$triggers += $provider->getAlternateIds();
@@ -197,7 +201,7 @@ class SearchComposer {
'appId' => $appId,
'name' => $provider->getName(),
'icon' => $this->fetchIcon($appId, $provider->getId()),
- 'order' => $provider->getOrder($route, $routeParameters),
+ 'order' => $order,
'triggers' => $triggers,
'filters' => $this->getFiltersType($filters, $provider->getId()),
'inAppSearch' => $provider instanceof IInAppSearch,
@@ -205,6 +209,7 @@ class SearchComposer {
},
$this->providers,
);
+ $providers = array_filter($providers);
// Sort providers by order and strip associative keys
usort($providers, function ($provider1, $provider2) {