From 38a14e5eed128b74d626043f8b3fb367cf90aeab Mon Sep 17 00:00:00 2001 From: Git'Fellow <12234510+solracsf@users.noreply.github.com> Date: Fri, 23 Jan 2026 16:13:42 +0100 Subject: [PATCH] fix(search): All elements are included regardless of their keys Signed-off-by: Git'Fellow <12234510+solracsf@users.noreply.github.com> --- .../lib/Search/TagSearchProvider.php | 53 ++++++++++--------- 1 file changed, 29 insertions(+), 24 deletions(-) diff --git a/apps/systemtags/lib/Search/TagSearchProvider.php b/apps/systemtags/lib/Search/TagSearchProvider.php index 56b8e4028b040..265ff78395d97 100644 --- a/apps/systemtags/lib/Search/TagSearchProvider.php +++ b/apps/systemtags/lib/Search/TagSearchProvider.php @@ -112,30 +112,35 @@ public function search(IUser $user, ISearchQuery $query): SearchResult { // prepare files results return SearchResult::paginated( $this->l10n->t('Tags'), - array_map(function (Node $result) use ($userFolder, $matchedTags, $query) { - // Generate thumbnail url - $thumbnailUrl = $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $result->getId()]); - $path = $userFolder->getRelativePath($result->getPath()); - - // Use shortened link to centralize the various - // files/folder url redirection in files.View.showFile - $link = $this->urlGenerator->linkToRoute( - 'files.View.showFile', - ['fileid' => $result->getId()] - ); - - $searchResultEntry = new SearchResultEntry( - $thumbnailUrl, - $result->getName(), - $this->formatSubline($query, $matchedTags[$result->getId()]), - $this->urlGenerator->getAbsoluteURL($link), - $result->getMimetype() === FileInfo::MIMETYPE_FOLDER ? 'icon-folder' : $this->mimeTypeDetector->mimeTypeIcon($result->getMimetype()) - ); - $searchResultEntry->addAttribute('fileId', (string)$result->getId()); - $searchResultEntry->addAttribute('path', $path); - return $searchResultEntry; - }, $searchResults) - + $tagResults, + [ + ...$tagResults, + ...array_map(function (Node $result) use ($userFolder, $matchedTags, $query) { + $nodeId = $result->getId(); + // Generate thumbnail url + $thumbnailUrl = $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $nodeId]); + $path = $userFolder->getRelativePath($result->getPath()); + + // Use shortened link to centralize the various + // files/folder url redirection in files.View.showFile + $link = $this->urlGenerator->linkToRoute( + 'files.View.showFile', + ['fileid' => $nodeId] + ); + + $searchResultEntry = new SearchResultEntry( + $thumbnailUrl, + $result->getName(), + $this->formatSubline($query, $matchedTags[$nodeId]), + $this->urlGenerator->getAbsoluteURL($link), + $result->getMimetype() === FileInfo::MIMETYPE_FOLDER + ? 'icon-folder' + : $this->mimeTypeDetector->mimeTypeIcon($result->getMimetype()) + ); + $searchResultEntry->addAttribute('fileId', (string)$nodeId); + $searchResultEntry->addAttribute('path', $path); + return $searchResultEntry; + }, $searchResults) + ], $query->getCursor() + $query->getLimit() ); }