summaryrefslogtreecommitdiffstats
path: root/cds-ui/designer-client/src/app/modules/feature-modules/packages/designer/source-view/source-view.component.ts
blob: e70d98d04779ba38af412b4db75b709469f9b1db (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
import { Component, OnInit, OnDestroy } from '@angular/core';
import { DesignerStore } from '../designer.store';
import { PackageCreationUtils } from '../../package-creation/package-creation.utils';
import { RouterLink, Router, ActivatedRoute } from '@angular/router';
import { Subject } from 'rxjs';
import { BluePrintDetailModel } from '../../model/BluePrint.detail.model';
import { viewClassName } from '@angular/compiler';
import { SourceViewService } from './source-view.service';

@Component({
    selector: 'app-designer-source-view',
    templateUrl: './source-view.component.html',
    styleUrls: ['./source-view.component.css']
})
export class DesignerSourceViewComponent implements OnInit, OnDestroy {

    content = '';
    lang = 'json';
    private controllerSideBar: boolean;
    private ngUnsubscribe = new Subject();
    viewedPackage: BluePrintDetailModel = new BluePrintDetailModel();

    constructor(private store: DesignerStore,
                private packageCreationUtils: PackageCreationUtils,
                private router: Router,
                private route: ActivatedRoute,
                private sourceViewService: SourceViewService) {
        this.controllerSideBar = true;
    }

    ngOnInit() {
        this.store.state$.subscribe(
            state => {
                console.log(state);
                this.content = this.packageCreationUtils.transformToJson(state.template);
            });

        const id = this.route.snapshot.paramMap.get('id');
        this.sourceViewService.getPagedPackages(id).subscribe(
            (bluePrintDetailModels) => {
                if (bluePrintDetailModels) {
                    this.viewedPackage = bluePrintDetailModels[0];
                }
            });
    }

    convertAndOpenInDesingerView(id) {
        // TODO validate json against scheme
        console.log('convertAndOpenInDesingerView ...', this.content);
        this.store.saveSourceContent(this.content);
        this.router.navigate(['/packages/designer', id]);
    }

    ngOnDestroy() {
        this.ngUnsubscribe.next();
        this.ngUnsubscribe.complete();
    }
}