From 16a9fce0e104a38371a9e5a567ec611ae3fc7f33 Mon Sep 17 00:00:00 2001 From: ys9693 Date: Sun, 19 Jan 2020 13:50:02 +0200 Subject: Catalog alignment Issue-ID: SDC-2724 Signed-off-by: ys9693 Change-Id: I52b4aacb58cbd432ca0e1ff7ff1f7dd52099c6fe --- .../ng2/pages/composition/composition.service.ts | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 catalog-ui/src/app/ng2/pages/composition/composition.service.ts (limited to 'catalog-ui/src/app/ng2/pages/composition/composition.service.ts') diff --git a/catalog-ui/src/app/ng2/pages/composition/composition.service.ts b/catalog-ui/src/app/ng2/pages/composition/composition.service.ts new file mode 100644 index 0000000000..e5e9d2dca8 --- /dev/null +++ b/catalog-ui/src/app/ng2/pages/composition/composition.service.ts @@ -0,0 +1,59 @@ +import {Injectable} from "@angular/core"; +import 'rxjs/add/observable/forkJoin'; +import {Component, PropertiesGroup, AttributesGroup, PolicyInstance} from "app/models"; +import {GroupInstance} from "app/models/graph/zones/group-instance"; +import {CommonGraphDataService} from "./common/common-graph-data.service"; +import {ForwardingPath} from "../../../models/forwarding-path"; +import {SelectedComponentType} from "./common/store/graph.actions"; + +@Injectable() +export class CompositionService extends CommonGraphDataService{ + + public originComponents: Array; //This contains the full data set after specifically requesting it. The uniqueId matches the 'componentUid' in the componentInstances array + public componentInstancesProperties:PropertiesGroup; + public componentInstancesAttributes:AttributesGroup; + public groupInstances: GroupInstance[]; + public policies: PolicyInstance[]; + public forwardingPaths: { [key:string]:ForwardingPath }; + public selectedComponentType: SelectedComponentType; + + //---------------------------- COMPONENT INSTANCES ------------------------------------// + + public getOriginComponentById = (uniqueId:string):Component => { + return this.originComponents && this.originComponents.find(instance => instance.uniqueId === uniqueId); + } + + public addOriginComponent = (originComponent:Component) => { + if(!this.originComponents) this.originComponents = []; + if(!this.getOriginComponentById(originComponent.uniqueId)){ + this.originComponents.push(originComponent); + } + } + + + public updateGroup = (instance: GroupInstance) => { + this.groupInstances = this.groupInstances.map(group => instance.uniqueId === group.uniqueId? instance : group); + } + + public updatePolicy = (instance: PolicyInstance) => { + this.policies = this.policies.map(policy => instance.uniqueId === policy.uniqueId? instance : policy); + } + + //---------------------------- POLICIES---------------------------------// + public addPolicyInstance = (instance: PolicyInstance) => { + return this.policies.push(instance); + } + + + //---------------------------- POLICIES---------------------------------// + public addGroupInstance = (instance: GroupInstance) => { + return this.groupInstances.push(instance); + } + + + //----------------------------SELECTED COMPONENT -----------------------// + + public setSelectedComponentType = (selectedType: SelectedComponentType) => { + this.selectedComponentType = selectedType; + } +} -- cgit 1.2.3-korg