From 8b7ef273b63de7f1baa7bb8e6bf6ff0d1aa53b61 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 08:43:36 +0000 Subject: [PATCH 1/3] Initial plan From df74374ba2ccc8f0b4935e0332209a464ab77525 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 08:46:20 +0000 Subject: [PATCH 2/3] Delegate thumbnail URL generation to ElementService Co-authored-by: brusch <142037+brusch@users.noreply.github.com> --- src/Service/GridData/Asset.php | 31 ++++--------------------------- 1 file changed, 4 insertions(+), 27 deletions(-) diff --git a/src/Service/GridData/Asset.php b/src/Service/GridData/Asset.php index 94e0de3b9..d3f1d18ea 100644 --- a/src/Service/GridData/Asset.php +++ b/src/Service/GridData/Asset.php @@ -13,6 +13,7 @@ namespace Pimcore\Bundle\AdminBundle\Service\GridData; +use Pimcore\Bundle\AdminBundle\Service\ElementService; use Pimcore\Model; use Pimcore\Model\Asset\MetaData\ClassDefinition\Data\Data; use Pimcore\Model\Element\Service; @@ -90,7 +91,6 @@ public static function getData(Model\Asset $asset, ?array $fields = null, ?strin public static function getPreviewThumbnail(Model\Asset $asset, array $params = [], bool $onlyMethod = false): ?string { $thumbnailMethod = ''; - $thumbnailUrl = null; if ($asset instanceof Model\Asset\Image) { $thumbnailMethod = 'getThumbnail'; @@ -104,32 +104,9 @@ public static function getPreviewThumbnail(Model\Asset $asset, array $params = [ return $thumbnailMethod; } - if (!empty($thumbnailMethod)) { - // Get URL generator from service container - $urlGenerator = \Pimcore::getContainer()->get('router'); - - // Merge asset ID with params - $routeParams = array_merge(['id' => $asset->getId()], $params); - - // Generate URL using the appropriate route - switch (true) { - case $asset instanceof Model\Asset\Image: - $thumbnailUrl = $urlGenerator->generate('pimcore_admin_asset_getimagethumbnail', $routeParams); - break; - case $asset instanceof Model\Asset\Video: - $thumbnailUrl = $urlGenerator->generate('pimcore_admin_asset_getvideothumbnail', $routeParams); - break; - case $asset instanceof Model\Asset\Document: - $thumbnailUrl = $urlGenerator->generate('pimcore_admin_asset_getdocumentthumbnail', $routeParams); - break; - case $asset instanceof Model\Asset\Folder: - $thumbnailUrl = $urlGenerator->generate('pimcore_admin_asset_getfolderthumbnail', $routeParams); - break; - default: - break; - } - } + // Delegate to ElementService to keep list view and tile view behavior aligned + $elementService = \Pimcore::getContainer()->get(ElementService::class); - return $thumbnailUrl; + return $elementService->getThumbnailUrl($asset, $params); } } From ac56bf30b281b12ee4f53cae8e03bdfded2d4827 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Wed, 18 Feb 2026 09:00:00 +0000 Subject: [PATCH 3/3] Add origin=folderPreview parameter to align with folder preview thumbnails Co-authored-by: brusch <142037+brusch@users.noreply.github.com> --- src/Service/GridData/Asset.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Service/GridData/Asset.php b/src/Service/GridData/Asset.php index d3f1d18ea..9846fe0c2 100644 --- a/src/Service/GridData/Asset.php +++ b/src/Service/GridData/Asset.php @@ -49,7 +49,7 @@ public static function getData(Model\Asset $asset, ?array $fields = null, ?strin $fieldDef = explode('~', $field); if (isset($fieldDef[1]) && $fieldDef[1] === 'system') { if ($fieldDef[0] === 'preview') { - $data[$field] = self::getPreviewThumbnail($asset, ['treepreview' => true, 'width' => 108, 'height' => 70, 'frame' => true]); + $data[$field] = self::getPreviewThumbnail($asset, ['treepreview' => true, 'origin' => 'folderPreview', 'width' => 108, 'height' => 70, 'frame' => true]); } elseif ($fieldDef[0] === 'size') { $size = $asset->getFileSize(); $data[$field] = formatBytes($size);