From a8d9b22beba9701c5b8b5c8b0f565ada087ec3f9 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 15 Sep 2020 09:19:53 +0200 Subject: [PATCH 1/2] Add an ETag for the search providers Signed-off-by: Joas Schilling --- core/Controller/UnifiedSearchController.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/Controller/UnifiedSearchController.php b/core/Controller/UnifiedSearchController.php index e4593ff4174..c2949ce6095 100644 --- a/core/Controller/UnifiedSearchController.php +++ b/core/Controller/UnifiedSearchController.php @@ -72,9 +72,10 @@ class UnifiedSearchController extends OCSController { public function getProviders(string $from = ''): DataResponse { [$route, $parameters] = $this->getRouteInformation($from); - return new DataResponse( - $this->composer->getProviders($route, $parameters) - ); + $result = $this->composer->getProviders($route, $parameters); + $response = new DataResponse($result); + $response->setETag(md5(json_encode($result))); + return $response; } /** From d37bd2cbabbe780fdf6f0ecf113336732f7de16c Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Tue, 15 Sep 2020 09:20:10 +0200 Subject: [PATCH 2/2] Use absolute URLs on search results for the clients Signed-off-by: Joas Schilling --- apps/comments/lib/Search/CommentsSearchProvider.php | 6 +++--- apps/files/lib/Search/FilesSearchProvider.php | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/apps/comments/lib/Search/CommentsSearchProvider.php b/apps/comments/lib/Search/CommentsSearchProvider.php index cae4c2f2351..67c297b02ce 100644 --- a/apps/comments/lib/Search/CommentsSearchProvider.php +++ b/apps/comments/lib/Search/CommentsSearchProvider.php @@ -99,13 +99,13 @@ class CommentsSearchProvider implements IProvider { $pathInfo = pathinfo($path); $isUser = $this->userManager->userExists($result->authorId); $avatarUrl = $isUser - ? $this->urlGenerator->linkToRoute('core.avatar.getAvatar', ['userId' => $result->authorId, 'size' => 42]) - : $this->urlGenerator->linkToRoute('core.GuestAvatar.getAvatar', ['guestName' => $result->authorId, 'size' => 42]); + ? $this->urlGenerator->linkToRouteAbsolute('core.avatar.getAvatar', ['userId' => $result->authorId, 'size' => 42]) + : $this->urlGenerator->linkToRouteAbsolute('core.GuestAvatar.getAvatar', ['guestName' => $result->authorId, 'size' => 42]); return new SearchResultEntry( $avatarUrl, $result->name, $path, - $this->urlGenerator->linkToRoute('files.view.index',[ + $this->urlGenerator->linkToRouteAbsolute('files.view.index',[ 'dir' => $pathInfo['dirname'], 'scrollto' => $pathInfo['basename'], ]), diff --git a/apps/files/lib/Search/FilesSearchProvider.php b/apps/files/lib/Search/FilesSearchProvider.php index 79ea4aa89f7..e0f421d401d 100644 --- a/apps/files/lib/Search/FilesSearchProvider.php +++ b/apps/files/lib/Search/FilesSearchProvider.php @@ -97,14 +97,14 @@ class FilesSearchProvider implements IProvider { array_map(function (FileResult $result) { // Generate thumbnail url $thumbnailUrl = $result->has_preview - ? $this->urlGenerator->linkToRoute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $result->id]) + ? $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $result->id]) : ''; return new SearchResultEntry( $thumbnailUrl, $result->name, $this->formatSubline($result), - $result->link, + $this->urlGenerator->getAbsoluteURL($result->link), $result->type === 'folder' ? 'icon-folder' : $this->mimeTypeDetector->mimeTypeIcon($result->mime_type) ); }, $this->fileSearch->search($query->getTerm()))