dae58a493c993bb392b959d5e13925b4bbd4a211
[ccsdk/cds.git] /
1 import {Component, OnInit} from '@angular/core';
2 import {FileSystemFileEntry, NgxFileDropEntry} from 'ngx-file-drop';
3 import {PackageCreationExtractionService} from '../../package-creation/package-creation-extraction.service';
4 import {Router} from '@angular/router';
5 import {PackageCreationStore} from '../../package-creation/package-creation.store';
6
7 @Component({
8     selector: 'app-import-package',
9     templateUrl: './import-package.component.html',
10     styleUrls: ['./import-package.component.css']
11 })
12 export class ImportPackageComponent implements OnInit {
13
14     public uploadedFiles: FileSystemFileEntry[] = [];
15     private fileNames: Set<string> = new Set();
16     fileToDelete: any = {};
17     public files: NgxFileDropEntry[] = [];
18
19     constructor(private packageCreationExtractionService: PackageCreationExtractionService,
20                 private packageCreationStore: PackageCreationStore,
21                 private router: Router) {
22
23     }
24
25     ngOnInit() {
26
27     }
28
29     removeInitFile(index) {
30         this.uploadedFiles.splice(index, 1);
31     }
32
33     public dropped(files: NgxFileDropEntry[]) {
34         this.files = files;
35         for (const droppedFile of files) {
36             // Is it a file? & Not added before
37             if (droppedFile.fileEntry.isFile) {
38                 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
39                 this.uploadedFiles.push(fileEntry);
40                 console.log(fileEntry.name);
41                 this.fileNames.add(fileEntry.name);
42
43             }
44         }
45     }
46
47     initDelete(file) {
48         console.log(file);
49         this.fileToDelete = file;
50     }
51
52     removeFile() {
53         const filename = this.fileToDelete.key;
54         for (let i = 0; i < this.uploadedFiles.length; i++) {
55             console.log(this.uploadedFiles[i]);
56             if (this.uploadedFiles[i].name === filename) {
57                 this.uploadedFiles.splice(i, 1);
58                 break;
59             }
60         }
61     }
62
63     resetTheUploadedFiles() {
64         this.uploadedFiles = [];
65     }
66
67
68     public fileOver(event) {
69         console.log(event);
70     }
71
72     public fileLeave(event) {
73         console.log(event);
74     }
75 // TODO mix two function in ond bigger one
76     saveFileToStore() {
77         console.log(this.uploadedFiles.length);
78         const file = this.getFile(this.uploadedFiles[this.uploadedFiles.length - 1]);
79         this.packageCreationStore.clear();
80         this.packageCreationExtractionService.extractBlobToStore(file);
81     }
82
83     openFilesInCreationPackage() {
84         this.router.navigate(['/packages/createPackage/']);
85     }
86
87     async getFile(fileEntry) {
88         try {
89             return await new Promise((resolve, reject) => fileEntry.file(resolve, reject));
90         } catch (err) {
91             console.log(err);
92         }
93     }
94 }