diff --git a/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.ts index d1abb67d5..d6355694b 100644 --- a/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/modules/file-preview/components/pdf-viewer/pdf-viewer.component.ts @@ -554,7 +554,7 @@ export class PdfViewerComponent extends AutoUnsubscribe implements OnInit, OnCha } private _loadDocument(blob: Blob, file: File) { - this.instance.UI.loadDocument(blob, { filename: file?.filename ?? 'document.pdf' }); + this.instance.UI.loadDocument(blob, { filename: file?.filename + '.pdf' ?? 'document.pdf' }); this._pageRotationService.clearRotationsHideActions(); } diff --git a/apps/red-ui/src/app/utils/file-drop-utils.ts b/apps/red-ui/src/app/utils/file-drop-utils.ts index c816d93d8..80ea60072 100644 --- a/apps/red-ui/src/app/utils/file-drop-utils.ts +++ b/apps/red-ui/src/app/utils/file-drop-utils.ts @@ -1,10 +1,27 @@ import { FileUploadModel } from '@upload-download/model/file-upload.model'; import { Dossier } from '@red/domain'; +const validDocumentMimeTypes = [ + 'application/msword', + 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + 'application/vnd.ms-excel', + 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', + 'application/vnd.ms-powerpoint', + 'application/vnd.openxmlformats-officedocument.presentationml.presentation', + 'application/pdf', +]; + +const validDocumentExtensions = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf']; + export function isCsv(file: FileUploadModel): boolean { return file.file.type?.toLowerCase() === 'text/csv' || file.file.name.toLowerCase().endsWith('.csv'); } +export function isDocument(file: FileUploadModel): boolean { + const extension = file.file.name.toLowerCase().substring(file.file.name.toLowerCase().lastIndexOf('.') + 1); + return validDocumentMimeTypes.includes(file.file.type?.toLowerCase()) || validDocumentExtensions.includes(extension); +} + export type Files = FileList | File[]; export function convertFiles(files: FileList | File[], dossier: Dossier): FileUploadModel[] { @@ -30,6 +47,7 @@ export function convertFiles(files: FileList | File[], dossier: Dossier): FileUp file.file.name.toLowerCase().endsWith('.pdf') || file.file.type?.toLowerCase() === 'application/zip' || file.file.name.toLowerCase().endsWith('.zip') || + isDocument(file) || isCsv(file), );