3737use Pimcore \Messenger \AssetUpdateTasksMessage ;
3838use Pimcore \Model ;
3939use Pimcore \Model \Asset ;
40+ use Pimcore \Model \Asset \Enum \PdfScanStatus ;
4041use Pimcore \Model \DataObject \ClassDefinition \Data \ManyToManyRelation ;
4142use Pimcore \Model \DataObject \Concrete ;
4243use Pimcore \Model \Element ;
@@ -950,10 +951,12 @@ public function showVersionAction(Request $request, Environment $twig): Response
950951 }
951952
952953 if ($ asset instanceof Asset \Document && $ asset ->getMimeType () === self ::PDF_MIMETYPE ) {
953- $ scanResponse = $ this ->getResponseByScanStatus ($ asset , false );
954- if ($ scanResponse ) {
955- return $ scanResponse ;
956- }
954+ $ previewData = ['thumbnailPath ' => '' ];
955+ $ previewData ['assetPath ' ] = $ asset ->getRealFullPath ();
956+ return $ this ->render (
957+ '@PimcoreAdmin/admin/asset/get_preview_pdf_open_in_new_tab.html.twig ' ,
958+ $ previewData
959+ );
957960 }
958961
959962 Tool \UserTimezone::setUserTimezone ($ request ->query ->get ('userTimezone ' ));
@@ -1450,8 +1453,23 @@ public function getPreviewDocumentAction(
14501453 if ($ asset ->isAllowed ('view ' )) {
14511454 if ($ asset instanceof Asset \Document && $ asset ->getMimeType () === self ::PDF_MIMETYPE ) {
14521455 $ scanResponse = $ this ->getResponseByScanStatus ($ asset );
1453- if ($ scanResponse ) {
1454- return $ scanResponse ;
1456+ $ openPdfConfig = Config::getSystemConfiguration ('assets ' )['document ' ]['open_pdf_in_new_tab ' ];
1457+
1458+ if ($ openPdfConfig === 'all-pdfs ' ||
1459+ ($ openPdfConfig === 'only-unsafe ' && $ scanResponse === PdfScanStatus::UNSAFE )) {
1460+ $ thumbnail = $ asset ->getImageThumbnail (Asset \Image \Thumbnail \Config::getPreviewConfig ());
1461+ $ previewData = ['thumbnailPath ' => $ thumbnail ->getPath ()];
1462+ $ previewData ['assetPath ' ] = $ asset ->getRealFullPath ();
1463+ return $ this ->render (
1464+ '@PimcoreAdmin/admin/asset/get_preview_pdf_open_in_new_tab.html.twig ' ,
1465+ $ previewData
1466+ );
1467+ }
1468+
1469+ if ($ scanResponse === PdfScanStatus::IN_PROGRESS ) {
1470+ return $ this ->render ('@PimcoreAdmin/admin/asset/get_preview_pdf_in_progress.html.twig ' );
1471+ } elseif ($ scanResponse === PdfScanStatus::UNSAFE ) {
1472+ return $ this ->render ('@PimcoreAdmin/admin/asset/get_preview_pdf_unsafe.html.twig ' );
14551473 }
14561474 }
14571475
@@ -1470,7 +1488,7 @@ public function getPreviewDocumentAction(
14701488 }
14711489 }
14721490
1473- private function getResponseByScanStatus (Asset \Document $ asset , bool $ processBackground = true ): ?Response
1491+ private function getResponseByScanStatus (Asset \Document $ asset , bool $ processBackground = true ): ?PdfScanStatus
14741492 {
14751493 if (!Config::getSystemConfiguration ('assets ' )['document ' ]['scan_pdf ' ]) {
14761494 return null ;
@@ -1486,11 +1504,7 @@ private function getResponseByScanStatus(Asset\Document $asset, bool $processBac
14861504 }
14871505 }
14881506
1489- return match ($ scanStatus ) {
1490- Asset \Enum \PdfScanStatus::IN_PROGRESS => $ this ->render ('@PimcoreAdmin/admin/asset/get_preview_pdf_in_progress.html.twig ' ),
1491- Asset \Enum \PdfScanStatus::UNSAFE => $ this ->render ('@PimcoreAdmin/admin/asset/get_preview_pdf_unsafe.html.twig ' ),
1492- default => null ,
1493- };
1507+ return $ scanStatus ;
14941508 }
14951509
14961510 /**
0 commit comments