mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
fix upload directive for Safari (#1871)
This commit is contained in:
committed by
Eugenio Romano
parent
3482cc57be
commit
5c7d53230d
@@ -113,6 +113,7 @@ describe('UploadDirective', () => {
|
||||
directive.enabled = true;
|
||||
let files = [<File> {}];
|
||||
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
|
||||
spyOn(directive, 'getDataTransfer').and.returnValue({});
|
||||
spyOn(directive, 'getFilesDropped').and.returnValue(files);
|
||||
spyOn(nativeElement, 'dispatchEvent').and.stub();
|
||||
directive.onDrop(event);
|
||||
@@ -123,6 +124,7 @@ describe('UploadDirective', () => {
|
||||
directive.enabled = true;
|
||||
let files = [<File> {}];
|
||||
let event = jasmine.createSpyObj('event', ['preventDefault', 'stopPropagation']);
|
||||
spyOn(directive, 'getDataTransfer').and.returnValue({});
|
||||
spyOn(directive, 'getFilesDropped').and.returnValue(files);
|
||||
|
||||
spyOn(nativeElement, 'dispatchEvent').and.callFake(e => {
|
||||
|
@@ -105,15 +105,18 @@ export class UploadDirective implements OnInit {
|
||||
}
|
||||
|
||||
@HostListener('drop', ['$event'])
|
||||
onDrop(event: DragEvent) {
|
||||
onDrop(event: Event) {
|
||||
if (this.isDropMode()) {
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
|
||||
this.isDragging = false;
|
||||
|
||||
const files = this.getFilesDropped(event.dataTransfer);
|
||||
this.onUploadFiles(files);
|
||||
const dataTranfer = this.getDataTransfer(event);
|
||||
if (dataTranfer) {
|
||||
const files = this.getFilesDropped(dataTranfer);
|
||||
this.onUploadFiles(files);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,6 +147,16 @@ export class UploadDirective implements OnInit {
|
||||
return this.hasMode('click');
|
||||
}
|
||||
|
||||
protected getDataTransfer(event: Event | any): DataTransfer {
|
||||
if (event && event.dataTranfer) {
|
||||
return event.dataTranfer;
|
||||
}
|
||||
if (event && event.originalEvent && event.originalEvent.dataTranfer) {
|
||||
return event.originalEvent.dataTranfer;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Extract files from the DataTransfer object used to hold the data that is being dragged during a drag and drop operation.
|
||||
* @param dataTransfer DataTransfer object
|
||||
|
Reference in New Issue
Block a user