argos/dmp-frontend/src/app/shared/components/file-uploader/file-uploader.component.ts

61 lines
1.5 KiB
TypeScript
Raw Normal View History

2018-10-05 17:00:54 +02:00
import { Component, Input, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
2018-11-27 18:33:17 +01:00
import { takeUntil } from 'rxjs/operators';
import { BaseComponent } from '../../../core/common/base/base.component';
import { FileUploader } from '../../../shared/components/file-uploader/FileUploader';
2018-03-21 14:15:06 +01:00
@Component({
2018-10-05 17:00:54 +02:00
selector: 'app-fileuploader-component',
templateUrl: './file-uploader.component.html'
2018-03-21 14:15:06 +01:00
})
2018-11-27 18:33:17 +01:00
export class FileUploaderComponent extends BaseComponent implements OnInit {
2018-05-14 08:44:35 +02:00
2018-10-05 17:00:54 +02:00
files: File | FileList;
disabled = false;
fileSelectMultipleMsg = 'No file(s) selected yet.';
@Input()
public label = 'FILE-UPLOADER.DEFAULT';
@Input()
public fileUploader: FileUploader;
@Input()
form: FormControl;
ngOnInit(): void {
}
selectEvent(files: FileList | File): void {
this.label = 'FILE-UPLOADER.UPLOAD';
if (files instanceof FileList) {
const names: string[] = [];
for (let i = 0; i < files.length; i++) {
names.push(files[i].name);
}
this.fileSelectMultipleMsg = names.join(',');
} else {
this.fileSelectMultipleMsg = files.name;
}
}
uploadEvent(files: FileList | File): void {
const formdata: FormData = new FormData();
if (files instanceof FileList) {
for (let i = 0; i < files.length; i++) {
formdata.append('file', files[i]);
}
} else {
formdata.append('file', files);
}
2018-11-27 18:33:17 +01:00
this.fileUploader.uploadFile(formdata)
.pipe(takeUntil(this._destroyed))
.subscribe(fileitem => this.form.patchValue(fileitem));
2018-10-05 17:00:54 +02:00
}
cancelEvent(): void {
}
2018-06-05 10:18:01 +02:00
}