X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=catalog-ui%2Fsrc%2Fapp%2Fmodels%2Fattributes.ts;h=3bbbd1eb7426dfcdf6a488465f97bad369642010;hb=da6b4a245482f4eebade8f487fc9d63f456469ab;hp=9e5828ae69eee34185fec2c51bb8de76db34461f;hpb=a5445100050e49e83f73424198d73cd72d672a4d;p=sdc.git diff --git a/catalog-ui/src/app/models/attributes.ts b/catalog-ui/src/app/models/attributes.ts index 9e5828ae69..3bbbd1eb74 100644 --- a/catalog-ui/src/app/models/attributes.ts +++ b/catalog-ui/src/app/models/attributes.ts @@ -7,9 +7,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -19,122 +19,129 @@ */ 'use strict'; -import * as _ from "lodash"; -import {SchemaAttributeGroupModel, SchemaAttribute} from "./schema-attribute"; -import {SchemaPropertyGroupModel, SchemaProperty} from "./aschema-property"; +import { AttributeBEModel } from 'app/models/attributes-outputs/attribute-be-model'; +import { AttributeOutputDetail } from 'app/models/attributes-outputs/attribute-output-detail'; +import * as _ from 'lodash'; +import { SchemaAttribute, SchemaAttributeGroupModel } from './schema-attribute'; export class AttributesGroup { - constructor(attributesObj?:AttributesGroup) { - _.forEach(attributesObj, (attributes:Array, instance) => { - this[instance] = []; - _.forEach(attributes, (attribute:AttributeModel):void => { - attribute.resourceInstanceUniqueId = instance; - attribute.readonly = true; - this[instance].push(new AttributeModel(attribute)); - }); - }); - } + constructor(attributesObj?: AttributesGroup) { + _.forEach(attributesObj, (attributes: AttributeModel[], instance) => { + this[instance] = []; + _.forEach(attributes, (attribute: AttributeModel): void => { + attribute.resourceInstanceUniqueId = instance; + attribute.readonly = true; + this[instance].push(new AttributeModel(attribute)); + }); + }); + } } export interface IAttributeModel { - //server data - uniqueId:string; - name:string; - defaultValue:string; - description:string; - type:string; - schema:SchemaAttributeGroupModel; - status:string; - value:string; - hidden:boolean; - parentUniqueId:string; - //custom data - resourceInstanceUniqueId:string; - readonly:boolean; - valueUniqueUid:string; + // server data + uniqueId: string; + name: string; + _default: string; + description: string; + type: string; + schema: SchemaAttributeGroupModel; + status: string; + value: string; + parentUniqueId: string; + // custom data + resourceInstanceUniqueId: string; + readonly: boolean; + valueUniqueUid: string; } -export class AttributeModel implements IAttributeModel { - - //server data - uniqueId:string; - name:string; - defaultValue:string; - description:string; - type:string; - schema:SchemaAttributeGroupModel; - status:string; - value:string; - hidden:boolean; - parentUniqueId:string; - //custom data - resourceInstanceUniqueId:string; - readonly:boolean; - valueUniqueUid:string; - - constructor(attribute?:AttributeModel) { - if (attribute) { - this.uniqueId = attribute.uniqueId; - this.name = attribute.name; - this.defaultValue = attribute.defaultValue; - this.description = attribute.description; - this.type = attribute.type; - this.status = attribute.status; - this.schema = attribute.schema; - this.value = attribute.value; - this.hidden = attribute.hidden; - this.parentUniqueId = attribute.parentUniqueId; - this.resourceInstanceUniqueId = attribute.resourceInstanceUniqueId; - this.readonly = attribute.readonly; - this.valueUniqueUid = attribute.valueUniqueUid; - } - - if (!this.schema || !this.schema.property) { - this.schema = new SchemaPropertyGroupModel(new SchemaProperty()); - } else { - //forcing creating new object, so editing different one than the object in the table - this.schema = new SchemaAttributeGroupModel(new SchemaAttribute(this.schema.property)); - } - - this.convertValueToView(); +export class AttributeModel extends AttributeBEModel implements IAttributeModel { + + // server data + uniqueId: string; + name: string; + _default: string; + description: string; + type: string; + schema: SchemaAttributeGroupModel; + status: string; + value: string; + parentUniqueId: string; + // custom data + resourceInstanceUniqueId: string; + readonly: boolean; + valueUniqueUid: string; + + getOutputValues: AttributeOutputDetail[]; + subAttributeOutputPath: string; + outputPath: string; + + constructor(attribute?: AttributeModel) { + super(attribute); + if (attribute) { + this.uniqueId = attribute.uniqueId; + this.name = attribute.name; + this._default = attribute._default; + this.description = attribute.description; + this.type = attribute.type; + this.status = attribute.status; + this.schema = attribute.schema; + this.value = attribute.value; + this.parentUniqueId = attribute.parentUniqueId; + this.resourceInstanceUniqueId = attribute.resourceInstanceUniqueId; + this.readonly = attribute.readonly; + this.valueUniqueUid = attribute.valueUniqueUid; + + this.getOutputValues = attribute.getOutputValues; + this.subAttributeOutputPath = attribute.subAttributeOutputPath; + this.outputPath = attribute.outputPath; + } else { + this._default = ''; + } + + if (!this.schema || !this.schema.property) { + this.schema = new SchemaAttributeGroupModel(new SchemaAttribute()); + } else { + // forcing creating new object, so editing different one than the object in the table + this.schema = new SchemaAttributeGroupModel(new SchemaAttribute(this.schema.property)); + } + } + + public convertToServerObject(): string { + if (this._default && this.type === 'map') { + this._default = '{' + this._default + '}'; + } + if (this._default && this.type === 'list') { + this._default = '[' + this._default + ']'; + } + this._default = this._default != '' && this._default != '[]' && this._default != '{}' ? this._default : null; + + return JSON.stringify(this); + } + + public convertValueToView() { + // unwrapping value {} or [] if type is complex + if (this._default && (this.type === 'map' || this.type === 'list') && + ['[', '{'].indexOf(this._default.charAt(0)) > -1 && + [']', '}'].indexOf(this._default.slice(-1)) > -1) { + this._default = this._default.slice(1, -1); + } + + // also for value - for the modal in canvas + if (this.value && (this.type === 'map' || this.type === 'list') && + ['[', '{'].indexOf(this.value.charAt(0)) > -1 && + [']', '}'].indexOf(this.value.slice(-1)) > -1) { + this.value = this.value.slice(1, -1); } + } - public convertToServerObject:Function = ():string => { - if (this.defaultValue && this.type === 'map') { - this.defaultValue = '{' + this.defaultValue + '}'; - } - if (this.defaultValue && this.type === 'list') { - this.defaultValue = '[' + this.defaultValue + ']'; - } - this.defaultValue = this.defaultValue != "" && this.defaultValue != "[]" && this.defaultValue != "{}" ? this.defaultValue : null; - - return JSON.stringify(this); - }; - - - public convertValueToView() { - //unwrapping value {} or [] if type is complex - if (this.defaultValue && (this.type === 'map' || this.type === 'list') && - ['[', '{'].indexOf(this.defaultValue.charAt(0)) > -1 && - [']', '}'].indexOf(this.defaultValue.slice(-1)) > -1) { - this.defaultValue = this.defaultValue.slice(1, -1); - } - - //also for value - for the modal in canvas - if (this.value && (this.type === 'map' || this.type === 'list') && - ['[', '{'].indexOf(this.value.charAt(0)) > -1 && - [']', '}'].indexOf(this.value.slice(-1)) > -1) { - this.value = this.value.slice(1, -1); - } + public toJSON = (): any => { + if (!this.resourceInstanceUniqueId) { + this.value = undefined; } + this.readonly = undefined; + this.resourceInstanceUniqueId = undefined; - public toJSON = ():any => { - if (!this.resourceInstanceUniqueId) { - this.value = undefined; - } - this.readonly = undefined; - this.resourceInstanceUniqueId = undefined; - return this; - }; + return this; + } }