9b65885a5576eb3510ec61ae9cafbd3221341d1a
[ccsdk/cds.git] /
1 import {Component, OnInit} from '@angular/core';
2 import {NgxFileDropEntry, FileSystemFileEntry, FileSystemDirectoryEntry} from 'ngx-file-drop';
3 import {PackageCreationStore} from '../package-creation.store';
4 import {Observable} from 'rxjs';
5 import {HttpClient} from '@angular/common/http';
6
7
8 @Component({
9     selector: 'app-imports-tab',
10     templateUrl: './imports-tab.component.html',
11     styleUrls: ['./imports-tab.component.css']
12 })
13 export class ImportsTabComponent {
14
15     fileContent: string | ArrayBuffer = '';
16
17     constructor(private packageCreationStore: PackageCreationStore, private http: HttpClient) {
18     }
19
20     public files: NgxFileDropEntry[] = [];
21
22     public dropped(files: NgxFileDropEntry[]) {
23         this.files = files;
24         for (const droppedFile of files) {
25
26             // Is it a file?
27             if (droppedFile.fileEntry.isFile) {
28                 const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;
29
30                 fileEntry.file((file: File) => {
31                     console.log(droppedFile.relativePath, file);
32
33                     const formData = new FormData();
34                     formData.append('logo', file, droppedFile.relativePath);
35                     console.log(formData);
36
37                     this.packageCreationStore.addDefinition(droppedFile.relativePath, this.getContent(droppedFile.relativePath));
38
39                 });
40             } else {
41                 // It was a directory (empty directories are added, otherwise only files)
42                 const fileEntry = droppedFile.fileEntry as FileSystemDirectoryEntry;
43                 console.log(droppedFile.relativePath, fileEntry);
44
45
46                /* const formData = new FormData();
47                 formData.append('logo', droppedFile, droppedFile.relativePath);
48                 console.log(formData);*/
49
50                 this.packageCreationStore.addDefinition(droppedFile.relativePath, this.getContent(droppedFile.relativePath));
51
52             }
53         }
54     }
55
56     public fileOver(event) {
57         console.log(event);
58     }
59
60     public fileLeave(event) {
61         console.log(event);
62     }
63
64
65     getContent(filePath: string) {
66         let content = '';
67         this.getJSON(filePath).subscribe(data => {
68             content = data;
69         });
70         return content;
71     }
72
73     public getJSON(filePath: string): Observable<any> {
74         return this.http.get(filePath);
75     }
76 }