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