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

57 lines
1.6 KiB
TypeScript

import { Component, Input, OnInit } from "@angular/core";
import { FileUploader } from "../../../shared/components/file-uploader/FileUploader";
import { FormControl } from "@angular/forms";
@Component({
selector: 'app-fileuploader-component',
templateUrl: './file-uploader.component.html'
})
export class FileUploaderComponent implements OnInit {
files: File | FileList;
disabled: boolean = false;
fileSelectMultipleMsg: string = 'No file(s) selected yet.';
@Input()
public label: string = 'FILE-UPLOADER.DEFAULT';
@Input()
public fileUploader: FileUploader;
@Input()
form: FormControl;
ngOnInit(): void {
console.log(this.form)
}
selectEvent(files: FileList | File): void {
this.label = 'FILE-UPLOADER.UPLOAD'
if (files instanceof FileList) {
let names: string[] = [];
for (let i: number = 0; i < files.length; i++) {
names.push(files[i].name);
}
this.fileSelectMultipleMsg = names.join(',');
} else {
this.fileSelectMultipleMsg = files.name;
}
}
uploadEvent(files: FileList | File): void {
let formdata: FormData = new FormData();
if (files instanceof FileList) {
for (let i: number = 0; i < files.length; i++) {
formdata.append('file', files[i]);
}
} else {
formdata.append('file', files);
}
this.fileUploader.uploadFile(formdata).subscribe(files => this.form.patchValue(files));
}
cancelEvent(): void {
}
}