mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
group uploaded files into single batch, IE fixes (#3438)
This commit is contained in:
committed by
Eugenio Romano
parent
74ed04dc53
commit
302091d338
@@ -1,6 +1,5 @@
|
||||
<div [file-draggable]="isDroppable()" class="upload-border"
|
||||
(filesDropped)="onFilesDropped($event)"
|
||||
(filesEntityDropped)="onFilesEntityDropped($event)"
|
||||
(folderEntityDropped)="onFolderEntityDropped($event)"
|
||||
(upload-files)="onUploadFiles($event)"
|
||||
dropzone="" webkitdropzone="*" #droparea>
|
||||
|
@@ -60,6 +60,7 @@ export class UploadDragAreaComponent extends UploadBase implements NodePermissio
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated in 2.4.0: use `onFilesDropped` instead
|
||||
* Called when the file are dropped in the drag area
|
||||
*
|
||||
* @param item - FileEntity
|
||||
|
@@ -35,7 +35,9 @@ export class FileDraggableDirective implements OnInit, OnDestroy {
|
||||
@Output()
|
||||
filesDropped: EventEmitter<File[]> = new EventEmitter<File[]>();
|
||||
|
||||
/** Emitted when one or more files are dragged and dropped onto the draggable element. */
|
||||
/** @deprecated in 2.4.0: use `filesDropped` instead.
|
||||
* Emitted when one or more files are dragged and dropped onto the draggable element.
|
||||
*/
|
||||
@Output()
|
||||
filesEntityDropped: EventEmitter<any> = new EventEmitter();
|
||||
|
||||
@@ -74,26 +76,34 @@ export class FileDraggableDirective implements OnInit, OnDestroy {
|
||||
if (this.enabled && !event.defaultPrevented) {
|
||||
this.preventDefault(event);
|
||||
|
||||
let items = event.dataTransfer.items;
|
||||
// Chrome, Edge, Firefox, Opera (Files + Folders)
|
||||
const items = event.dataTransfer.items;
|
||||
if (items) {
|
||||
const files: File[] = [];
|
||||
|
||||
for (let i = 0; i < items.length; i++) {
|
||||
if (typeof items[i].webkitGetAsEntry !== 'undefined') {
|
||||
let item = items[i].webkitGetAsEntry();
|
||||
if (items[i].webkitGetAsEntry) {
|
||||
const item = items[i].webkitGetAsEntry();
|
||||
|
||||
if (item) {
|
||||
if (item.isFile) {
|
||||
this.filesEntityDropped.emit(item);
|
||||
const file = items[i].getAsFile();
|
||||
|
||||
if (file) {
|
||||
files.push(file);
|
||||
}
|
||||
} else if (item.isDirectory) {
|
||||
this.folderEntityDropped.emit(item);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
let files = FileUtils.toFileArray(event.dataTransfer.files);
|
||||
this.filesDropped.emit(files);
|
||||
}
|
||||
}
|
||||
if (files.length > 0) {
|
||||
this.filesDropped.emit(files);
|
||||
}
|
||||
} else {
|
||||
// safari or FF
|
||||
let files = FileUtils.toFileArray(event.dataTransfer.files);
|
||||
// IE, Safari, Chrome, Edge, Firefox, Opera (Files only)
|
||||
const files = FileUtils.toFileArray(event.dataTransfer.files);
|
||||
this.filesDropped.emit(files);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user