diff --git a/apps/files/src/services/Recent.ts b/apps/files/src/services/Recent.ts index 403f4749a43..dd87070d248 100644 --- a/apps/files/src/services/Recent.ts +++ b/apps/files/src/services/Recent.ts @@ -41,7 +41,7 @@ export async function getContents(path = '/', options: { signal: AbortSignal }): const contentsResponse = await client.search('/', { signal: options.signal, details: true, - data: getRecentSearch(lastTwoWeeksTimestamp, store.userConfig.recent_files_limit + 1), + data: getRecentSearch(lastTwoWeeksTimestamp, Number(store.userConfig.recent_files_limit)), }) as ResponseDataDetailed const contents = contentsResponse.data.results diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php index 4de57e7d75a..8e344293ba5 100644 --- a/lib/private/Files/Cache/QuerySearchHelper.php +++ b/lib/private/Files/Cache/QuerySearchHelper.php @@ -152,7 +152,13 @@ class QuerySearchHelper { $requestedFields = $this->searchBuilder->extractRequestedFields($searchQuery->getSearchOperation()); - $query = $builder->selectFileCache('file', true); + $orderFields = array_map(fn ($order) => $order->getField(), $searchQuery->getOrder()); + + $joinExtendedCache = in_array('creation_time', $requestedFields) + || in_array('upload_time', $requestedFields) + || in_array('last_activity', $orderFields); + + $query = $builder->selectFileCache('file', $joinExtendedCache); if (in_array('systemtag', $requestedFields)) { $this->equipQueryForSystemTags($query, $this->requireUser($searchQuery));