aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/models/attributes.ts
diff options
context:
space:
mode:
authorvasraz <vasyl.razinkov@est.tech>2021-02-16 17:37:57 +0000
committerChristophe Closset <christophe.closset@intl.att.com>2021-02-17 15:57:55 +0000
commit26e5029d922779fd7e786c1a31b6b37492132388 (patch)
tree8e8e68a6913749e1405fce951bc7816d4fa35ba3 /catalog-ui/src/app/models/attributes.ts
parentf2c0a4118c3c0b6360b639622766543bd754b59c (diff)
Implement Attributes/Outputs FE
Change-Id: I014bb0ebc07f3fea4266a4f295172eadee546705 Signed-off-by: Vasyl Razinkov <vasyl.razinkov@est.tech> Issue-ID: SDC-3448
Diffstat (limited to 'catalog-ui/src/app/models/attributes.ts')
-rw-r--r--catalog-ui/src/app/models/attributes.ts218
1 files changed, 114 insertions, 104 deletions
diff --git a/catalog-ui/src/app/models/attributes.ts b/catalog-ui/src/app/models/attributes.ts
index a51358cdc4..ae5eac0281 100644
--- a/catalog-ui/src/app/models/attributes.ts
+++ b/catalog-ui/src/app/models/attributes.ts
@@ -20,120 +20,130 @@
'use strict';
import * as _ from "lodash";
-import {SchemaAttributeGroupModel, SchemaAttribute} from "./schema-attribute";
-import {SchemaPropertyGroupModel, SchemaProperty} from "./aschema-property";
+import {SchemaAttribute, SchemaAttributeGroupModel} from "./schema-attribute";
+import {AttributeOutputDetail} from "app/models/attributes-outputs/attribute-output-detail";
+import {AttributeBEModel} from "app/models/attributes-outputs/attribute-be-model";
export class AttributesGroup {
- constructor(attributesObj?:AttributesGroup) {
- _.forEach(attributesObj, (attributes:Array<AttributeModel>, 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: Array<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;
- _default:string;
- description:string;
- type:string;
- schema:SchemaAttributeGroupModel;
- status:string;
- value:string;
- 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;
- _default:string;
- description:string;
- type:string;
- schema:SchemaAttributeGroupModel;
- status:string;
- value:string;
- parentUniqueId:string;
- //custom data
- resourceInstanceUniqueId:string;
- readonly:boolean;
- valueUniqueUid:string;
-
- constructor(attribute?:AttributeModel) {
- 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;
- } else {
- this._default = '';
- }
-
- 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));
+ }
+
+ this.convertValueToView();
+ }
+
+ 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);
}
- 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);
- }
+ //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;
- return this;
- };
+ public toJSON = (): any => {
+ if (!this.resourceInstanceUniqueId) {
+ this.value = undefined;
+ }
+ this.readonly = undefined;
+ this.resourceInstanceUniqueId = undefined;
+ return this;
+ };
}