63c10ad7b74265e7836ee06cc242a9d555fbbefa
[ccsdk/cds.git] /
1 import {Component, OnInit} from '@angular/core';
2 import {PackageCreationService} from '../package-creation.service';
3 import {MetaDataTabModel} from '../mapping-models/metadata/MetaDataTab.model';
4 import {PackageCreationStore} from '../package-creation.store';
5 import {ActivatedRoute} from '@angular/router';
6
7
8 @Component({
9     selector: 'app-metadata-tab',
10     templateUrl: './metadata-tab.component.html',
11     styleUrls: ['./metadata-tab.component.css']
12 })
13 export class MetadataTabComponent implements OnInit {
14     packageNameAndVersionEnables = true;
15     counter = 0;
16     tags = new Set<string>();
17     customKeysMap = new Map();
18     modes: object[] = [
19         {name: 'Designer Mode', style: 'mode-icon icon-designer-mode'}];
20     /*  {name: 'Scripting Mode', style: 'mode-icon icon-scripting-mode'},
21       {name: 'Generic Script Mode', style: 'mode-icon icon-generic-script-mode'}];*/
22     private metaDataTab: MetaDataTabModel = new MetaDataTabModel();
23     private errorMessage: string;
24
25     constructor(private route: ActivatedRoute,
26                 private packageCreationService: PackageCreationService,
27                 private packageCreationStore: PackageCreationStore
28     ) {
29
30     }
31
32     ngOnInit() {
33         this.metaDataTab.templateTags = this.tags;
34         this.metaDataTab.mapOfCustomKey = this.customKeysMap;
35
36         const id = this.route.snapshot.paramMap.get('id');
37         id ? this.packageNameAndVersionEnables = false :
38             this.packageNameAndVersionEnables = true;
39         this.packageCreationStore.state$.subscribe(element => {
40
41             if (element && element.metaData) {
42
43                 this.metaDataTab.name = element.metaData.name;
44                 this.metaDataTab.version = element.metaData.version;
45                 this.metaDataTab.description = element.metaData.description;
46                 this.tags = element.metaData.templateTags;
47                 this.metaDataTab.templateTags = this.tags;
48                 console.log(element);
49                 if (element.metaData.mode && element.metaData.mode.includes(' DEFAULT')) {
50                     this.metaDataTab.mode = 'Designer Mode';
51                 }
52
53                 this.customKeysMap = element.metaData.mapOfCustomKey;
54                 // this.tags = element.metaData.templateTags;
55
56             }
57         });
58     }
59
60     removeTag(value) {
61         // console.log(event);
62         this.tags.delete(value);
63     }
64
65     addTag(event) {
66         const value = event.target.value;
67         console.log(value);
68         if (value && value.trim().length > 0) {
69             event.target.value = '';
70             this.tags.add(value);
71         }
72     }
73
74     removeKey(event, key) {
75         console.log(event);
76         this.customKeysMap.delete(key);
77     }
78
79     addCustomKey() {
80         // tslint:disable-next-line: no-string-literal
81         const key = document.getElementsByClassName('mapKey')[0];
82         // tslint:disable-next-line: no-string-literal
83         const value = document.getElementsByClassName('mapValue')[0];
84
85         // tslint:disable-next-line: no-string-literal
86         if (key['value'] && value['value']) {
87             // tslint:disable-next-line: no-string-literal
88             this.customKeysMap.set(key['value'], value['value']);
89             // tslint:disable-next-line: no-string-literal
90             key['value'] = '';
91             // tslint:disable-next-line: no-string-literal
92             value['value'] = '';
93         }
94     }
95
96     validatePackageNameAndVersion() {
97         if (this.metaDataTab.name && this.metaDataTab.version) {
98             this.packageCreationService.checkBluePrintNameAndVersion(this.metaDataTab.name, this.metaDataTab.version).then(element => {
99                 if (element) {
100                     this.errorMessage = 'the package with name and version is exists';
101                 } else {
102                     this.errorMessage = ' ';
103                 }
104             });
105         }
106
107     }
108
109     saveMetaDataToStore() {
110         this.packageCreationStore.changeMetaData(this.metaDataTab);
111     }
112 }