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);
}