diff --git a/src/Hooks/CP/AssetsIndexQuery.php b/src/Hooks/CP/AssetsIndexQuery.php new file mode 100644 index 00000000000..c68f84ae64c --- /dev/null +++ b/src/Hooks/CP/AssetsIndexQuery.php @@ -0,0 +1,26 @@ +runHooksWith('query', [ + 'query' => $this->query, + 'container' => $this->container, + ]); + + return $payload->query; + } +} diff --git a/src/Http/Controllers/CP/Assets/BrowserController.php b/src/Http/Controllers/CP/Assets/BrowserController.php index 699364caa2e..d7745c10f0a 100644 --- a/src/Http/Controllers/CP/Assets/BrowserController.php +++ b/src/Http/Controllers/CP/Assets/BrowserController.php @@ -13,6 +13,7 @@ use Statamic\Facades\Asset; use Statamic\Facades\Scope; use Statamic\Facades\User; +use Statamic\Hooks\CP\AssetsIndexQuery; use Statamic\Http\Controllers\CP\CpController; use Statamic\Http\Requests\FilteredRequest; use Statamic\Http\Resources\CP\Assets\Folder; @@ -105,7 +106,8 @@ public function folder(Request $request, $container, $path = '/') $totalFolders = $folders->count(); $lastFolderPage = (int) ceil($totalFolders / $perPage) ?: 1; - $totalAssets = $folder->queryAssets()->count(); + $query = (new AssetsIndexQuery($folder->queryAssets(), $container))->query(); + $totalAssets = $query->count(); $totalItems = $totalAssets + $totalFolders; if ($request->sort) { @@ -125,7 +127,6 @@ public function folder(Request $request, $container, $path = '/') $folders = $folders->slice(($page - 1) * $perPage, $perPage); if ($page >= $lastFolderPage) { - $query = $folder->queryAssets(); $query->orderBy($sort, $order); $this->applyQueryScopes($query, $request->all()); @@ -190,6 +191,8 @@ public function search(FilteredRequest $request, $container, $path = null) $query->where('folder', $path); } + $query = (new AssetsIndexQuery($query, $container))->query(); + if ($request->sort) { $query->orderBy($request->sort, $request->order ?? 'asc'); }