From ed64b5edff15e702493df21aa3230b81593e6133 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Fri, 9 Jun 2017 03:19:04 +0300 Subject: [SDC-29] catalog 1707 rebase commit. Change-Id: I43c3dc5cf44abf5da817649bc738938a3e8388c1 Signed-off-by: Michael Lando --- .../network-call-flow-view-model.ts | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 catalog-ui/src/app/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts (limited to 'catalog-ui/src/app/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts') diff --git a/catalog-ui/src/app/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts b/catalog-ui/src/app/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts new file mode 100644 index 0000000000..511c17eb60 --- /dev/null +++ b/catalog-ui/src/app/view-models/workspace/tabs/network-call-flow/network-call-flow-view-model.ts @@ -0,0 +1,79 @@ +'use strict'; +import {IWorkspaceViewModelScope} from "app/view-models/workspace/workspace-view-model"; +import {VendorModel} from "app/view-models/workspace/tabs/management-workflow/management-workflow-view-model"; +import {ResourceType, ArtifactType} from "app/utils"; +import {ComponentInstance} from "app/models"; +import {ComponentGenericResponse} from "../../../../ng2/services/responses/component-generic-response"; +import {ComponentServiceNg2} from "../../../../ng2/services/component-services/component.service"; + +export interface INetworkCallFlowViewModelScope extends IWorkspaceViewModelScope { + vendorMessageModel:VendorModel; +} + +export class participant { + name:string; + id:string; + + constructor(instance:ComponentInstance) { + this.name = instance.name; + this.id = instance.uniqueId; + } +} + + +export class NetworkCallFlowViewModel { + + static '$inject' = [ + '$scope', + 'uuid4', + 'ComponentServiceNg2' + ]; + + constructor(private $scope:INetworkCallFlowViewModelScope, + private uuid4:any, + private ComponentServiceNg2: ComponentServiceNg2) { + + this.initComponentInstancesAndInformationalArtifacts(); + this.$scope.updateSelectedMenuItem(); + } + + private getVFParticipantsFromInstances(instances:Array):Array { + let participants = []; + _.forEach(instances, (instance)=> { + if (ResourceType.VF == instance.originType) { + participants.push(new participant(instance)); + } + }); + return participants; + } + + private initComponentInstancesAndInformationalArtifacts = ():void => { + if(!this.$scope.component.artifacts || !this.$scope.component.componentInstances) { + this.$scope.isLoading = true; + this.ComponentServiceNg2.getComponentInformationalArtifactsAndInstances(this.$scope.component).subscribe((response:ComponentGenericResponse) => { + this.$scope.component.artifacts = response.artifacts; + this.$scope.component.componentInstances = response.componentInstances; + this.initScope(); + this.$scope.isLoading = false; + }); + } else { + this.initScope(); + } + } + + private initScope():void { + this.$scope.vendorMessageModel = new VendorModel( + this.$scope.component.artifacts.filteredByType(ArtifactType.THIRD_PARTY_RESERVED_TYPES.NETWORK_CALL_FLOW), + this.$scope.component.uniqueId, + this.$scope.isViewMode(), + this.$scope.user.userId, + this.uuid4.generate(), + ArtifactType.THIRD_PARTY_RESERVED_TYPES.NETWORK_CALL_FLOW, + this.getVFParticipantsFromInstances(this.$scope.component.componentInstances) + ); + + this.$scope.thirdParty = true; + this.$scope.setValidState(true); + } + +} -- cgit 1.2.3-korg