2f8ebcc7c3c4e618bad90f8756f7f3aaef1aa7c7
[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
6
7 @Component({
8     selector: 'app-metadata-tab',
9     templateUrl: './metadata-tab.component.html',
10     styleUrls: ['./metadata-tab.component.css']
11 })
12 export class MetadataTabComponent implements OnInit {
13
14     counter = 0;
15     tags = new Set<string>();
16     customKeysMap = new Map();
17     modes: object[] = [
18         { name: 'Designer Mode', style: 'mode-icon icon-designer-mode' },
19         { name: 'Scripting Mode', style: 'mode-icon icon-scripting-mode' },
20         { name: 'Generic Script Mode', style: 'mode-icon icon-generic-script-mode' }];
21     private metaDataTab: MetaDataTabModel = new MetaDataTabModel();
22     private errorMessage: string;
23
24     constructor(private packageCreationService: PackageCreationService, private packageCreationStore: PackageCreationStore) {
25
26     }
27
28     ngOnInit() {
29         this.metaDataTab.templateTags = this.tags;
30         this.metaDataTab.mapOfCustomKey = this.customKeysMap;
31         this.packageCreationStore.changeMetaData(this.metaDataTab);
32     }
33
34     removeTag(value) {
35         // console.log(event);
36         this.tags.delete(value);
37     }
38     addTag(event) {
39         const value = event.target.value;
40         console.log(value);
41         if (value && value.trim().length > 0) {
42             event.target.value = '';
43             this.tags.add(value);
44         }
45     }
46
47     removeKey(event, key) {
48         console.log(event);
49         this.customKeysMap.delete(key);
50     }
51     addCustomKey() {
52         // tslint:disable-next-line: no-string-literal
53         const key = document.getElementsByClassName('mapKey')[0];
54         // tslint:disable-next-line: no-string-literal
55         const value = document.getElementsByClassName('mapValue')[0];
56
57         // tslint:disable-next-line: no-string-literal
58         if (key['value'] && value['value']) {
59             // tslint:disable-next-line: no-string-literal
60             this.customKeysMap.set(key['value'], value['value']);
61             // tslint:disable-next-line: no-string-literal
62             key['value'] = '';
63             // tslint:disable-next-line: no-string-literal
64             value['value'] = '';
65         }
66     }
67     validatePackageNameAndVersion() {
68         if (this.metaDataTab.name && this.metaDataTab.version) {
69             this.packageCreationService.checkBluePrintNameAndVersion(this.metaDataTab.name, this.metaDataTab.version).then(element => {
70                 if (element) {
71                     this.errorMessage = 'the package with name and version is exists';
72                 } else {
73                     this.errorMessage = ' ';
74                 }
75             });
76         }
77
78     }
79 }