X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cds-ui%2Fclient%2Fsrc%2Fapp%2Ffeature-modules%2Fresource-definition%2Fresource-edit%2Fresource-metadata%2Fresource-metadata.component.ts;h=e155ec100e1cd910819bde6064115651deb40bac;hb=260f2cdf890ea4926437975aef1bcaa67c8de329;hp=f44c9b0d15dd58ee34387c6c5f6e02a96c8b17ab;hpb=2c7d3b98c27df5e597b412bb46291ab8e3c681ff;p=ccsdk%2Fcds.git diff --git a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts index f44c9b0d1..e155ec100 100644 --- a/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts +++ b/cds-ui/client/src/app/feature-modules/resource-definition/resource-edit/resource-metadata/resource-metadata.component.ts @@ -3,6 +3,8 @@ * ONAP : CDS * ================================================================================ * Copyright 2019 TechMahindra +* +* Modifications Copyright (C) 2019 IBM *================================================================================= * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,8 +20,17 @@ * ============LICENSE_END========================================================= */ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, EventEmitter, Output } from '@angular/core'; import {FormBuilder, FormGroup, Validators} from '@angular/forms'; +import { IResources } from 'src/app/common/core/store/models/resources.model'; +import { IResourcesState } from 'src/app/common/core/store/models/resourcesState.model'; +import { Observable } from 'rxjs'; +import { Store } from '@ngrx/store'; +import { IAppState } from '../../../../common/core/store/state/app.state'; +import { A11yModule } from '@angular/cdk/a11y'; +import { LoadResourcesSuccess } from 'src/app/common/core/store/actions/resources.action'; +import { IPropertyData } from 'src/app/common/core/store/models/propertyData.model'; +import { IEntrySchema } from 'src/app/common/core/store/models/entrySchema.model'; @Component({ selector: 'app-resource-metadata', @@ -27,19 +38,78 @@ import {FormBuilder, FormGroup, Validators} from '@angular/forms'; styleUrls: ['./resource-metadata.component.scss'] }) export class ResourceMetadataComponent implements OnInit { - + entry_schema:IEntrySchema; + properties: any = {}; ResourceMetadata: FormGroup; - - constructor(private _formBuilder: FormBuilder) { - this.ResourceMetadata = this._formBuilder.group({ - Resource_Name: ['', Validators.required], - _tags: ['', Validators.required], - _description : ['', Validators.required], - _type: ['string', Validators.required], - _required: ['false', Validators.required], - entry_schema: [''] + resource_name: string; + tags: string; + rdState: Observable; + resources: IResources; + propertyValues = []; + property = []; + @Output() resourcesData = new EventEmitter(); + + constructor(private formBuilder: FormBuilder, private store: Store) { + this.rdState = this.store.select('resources'); + this.ResourceMetadata = this.formBuilder.group({ + Resource_Name: ['', Validators.required], + _tags: ['', Validators.required], + _description : ['', Validators.required], + _type: ['', Validators.required], + required: ['', Validators.required], + entry_schema: [''] }); - } + } - ngOnInit() {} -} + ngOnInit() { + this.rdState.subscribe( + resourcesdata => { + var resourcesState: IResourcesState = { resources: resourcesdata.resources, isLoadSuccess: resourcesdata.isLoadSuccess, isSaveSuccess: resourcesdata.isSaveSuccess, isUpdateSuccess: resourcesdata.isUpdateSuccess }; + this.resource_name = resourcesState.resources.name; + this.tags = resourcesState.resources.tags; + this.resources = resourcesState.resources; + if (resourcesState.resources.definition && resourcesState.resources.definition.property) { + this.properties= resourcesState.resources.definition.property; + } else { + this.properties['description']= ''; + this.properties['type'] = ''; + this.properties['entry_schema'] = ''; + this.properties['required'] = false; + } + // this.propertyValues= this.checkNested(this.properties); + this.ResourceMetadata = this.formBuilder.group({ + Resource_Name: [this.resource_name, Validators.required], + _tags: [this.tags, Validators.required], + _description : [ this.properties.description, Validators.required, ''], + _type: [ this.properties.type, Validators.required], + required: [ JSON.stringify(this.properties.required), Validators.required], + entry_schema: [this.properties.entry_schema] + }); + }) + } + + UploadMetadata() { + + this.resources.name = this.ResourceMetadata.value.Resource_Name; + this.resources.tags = this.ResourceMetadata.value._tags; + this.resources.definition.property.description = this.ResourceMetadata.value._description; + this.resources.definition.property.type = this.ResourceMetadata.value._type; + this.resources.definition.property.required = this.ResourceMetadata.value.required; + this.resources.definition.property.entry_schema = this.ResourceMetadata.value.entry_schema; + this.resourcesData.emit(this.resources); + } + + checkNested(obj) { + for (let key in obj) { + if (obj.hasOwnProperty(key)) { + if (typeof obj[key] == "object"){ + console.log(`Key: ${key}`) + this.checkNested(obj[key]); + } else { + this.property.push(obj[key]); + } + } + } + return this.property + } +} \ No newline at end of file