From e7db991c7ab2209ade035b24b295ca32d8ee5294 Mon Sep 17 00:00:00 2001 From: root Date: Thu, 1 Aug 2024 13:04:17 -0300 Subject: [PATCH] Improving the file browser for importing metadata (cherry picked from commit ce2abfe584b3cabb71730882025c6baf8bd7bd4b) --- .../file-dropzone-no-uploader.component.html | 4 ++-- .../file-dropzone-no-uploader.component.ts | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html index babfa91f0b0..38c2af97fc2 100644 --- a/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html +++ b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.html @@ -19,9 +19,9 @@ {{ ((fileObject === null || fileObject === undefined) ? dropMessageLabel : dropMessageLabelReplacement) | translate}} {{'uploader.or' | translate}}

diff --git a/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts index 8c04bd264bd..e937b1ea0fb 100644 --- a/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts +++ b/src/app/shared/upload/file-dropzone-no-uploader/file-dropzone-no-uploader.component.ts @@ -54,7 +54,7 @@ export class FileDropzoneNoUploaderComponent implements OnInit { /** * The function to call when file is added */ - @Output() onFileAdded: EventEmitter = new EventEmitter(); + @Output() onFileAdded: EventEmitter = new EventEmitter(); /** * The uploader configuration options @@ -83,15 +83,17 @@ export class FileDropzoneNoUploaderComponent implements OnInit { } @HostListener('window:drop', ['$event']) - onDrop(event: any) { + onDrop(event: DragEvent) { event.preventDefault(); + event.stopPropagation(); } @HostListener('window:dragover', ['$event']) - onDragOver(event: any) { + onDragOver(event: DragEvent) { // Show drop area on the page event.preventDefault(); - if ((event.target as any).tagName !== 'HTML') { + event.stopPropagation(); + if ((event.target as HTMLElement).tagName !== 'HTML') { this.isOverDocumentDropZone = observableOf(true); } } @@ -105,11 +107,18 @@ export class FileDropzoneNoUploaderComponent implements OnInit { } } + public handleFileInput(event: Event) { + const input = event.target as HTMLInputElement; + if (input.files && input.files.length > 0) { + this.setFile(input.files); + } + } + /** * Set file * @param files */ - setFile(files) { + public setFile(files: FileList) { this.fileObject = files.length > 0 ? files[0] : undefined; this.onFileAdded.emit(this.fileObject); }