From 75e5854458d60e220f7989dc8290f9c570645dd2 Mon Sep 17 00:00:00 2001 From: Benjamin Gaussorgues Date: Tue, 21 Nov 2023 17:24:36 +0100 Subject: feat(search): hide search provider Some search providers can be hidden if they send `null` in `getOrder` Signed-off-by: Benjamin Gaussorgues --- lib/private/Search/SearchComposer.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/private/Search') 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) { -- cgit v1.2.3