aboutsummaryrefslogtreecommitdiffstats
path: root/catalog-ui/src/app/models/graph
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/src/app/models/graph')
-rw-r--r--catalog-ui/src/app/models/graph/connectRelationModel.ts (renamed from catalog-ui/src/app/models/graph/relationMenuObjects.ts)35
-rw-r--r--catalog-ui/src/app/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts2
-rw-r--r--catalog-ui/src/app/models/graph/graph-links/links-factory.ts4
-rw-r--r--catalog-ui/src/app/models/graph/match-relation.ts68
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts7
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-configuration.ts39
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts3
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service-proxy.ts42
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts2
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts2
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts2
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts3
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts3
-rw-r--r--catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts1
-rw-r--r--catalog-ui/src/app/models/graph/nodes/modules-graph-nodes/module-node-base.ts3
-rw-r--r--catalog-ui/src/app/models/graph/nodes/nodes-factory.ts10
-rw-r--r--catalog-ui/src/app/models/graph/relationship.ts48
17 files changed, 178 insertions, 96 deletions
diff --git a/catalog-ui/src/app/models/graph/relationMenuObjects.ts b/catalog-ui/src/app/models/graph/connectRelationModel.ts
index 37b7cee349..af9732fa59 100644
--- a/catalog-ui/src/app/models/graph/relationMenuObjects.ts
+++ b/catalog-ui/src/app/models/graph/connectRelationModel.ts
@@ -18,12 +18,11 @@
* ============LICENSE_END=========================================================
*/
'use strict';
-import {MatchReqToReq, MatchBase} from "./match-relation";
+import {Match} from "./match-relation";
import {CompositionCiNodeBase} from "./nodes/composition-graph-nodes/composition-ci-node-base";
-import {Component} from "../components/component";
import {ComponentInstance} from "../componentsInstances/componentInstance";
-export class RelationMenuDirectiveObj {
+export class ConnectRelationModel {
fromNode:CompositionCiNodeBase;
toNode:CompositionCiNodeBase;
@@ -31,17 +30,16 @@ export class RelationMenuDirectiveObj {
rightSideLink:GraphLinkMenuSide;
leftSideLink:GraphLinkMenuSide;
selectionText:string;
- vlType:string;
+ possibleRelations:Array<Match>;
- constructor(fromNode:CompositionCiNodeBase, toNode:CompositionCiNodeBase, menuPosition:Cy.Position, possibleRelations:Array<MatchBase>) {
+ constructor(fromNode:CompositionCiNodeBase, toNode:CompositionCiNodeBase, possibleRelations:Array<Match>) {
this.fromNode = fromNode;
this.toNode = toNode;
- // this.modelLinks = modelLinks;
- this.menuPosition = menuPosition;
+
this.leftSideLink = new GraphLinkMenuSide(this.fromNode.componentInstance);
this.rightSideLink = new GraphLinkMenuSide(this.toNode.componentInstance);
this.selectionText = '';
- this.vlType = null;
+ this.possibleRelations = possibleRelations;
possibleRelations.forEach((match:any) => {
@@ -57,20 +55,13 @@ export class RelationMenuDirectiveObj {
//push the match to fromNode object (from node is always the requirement)
this.leftSideLink.requirements[reqObjKey].push(match);
- if (match instanceof MatchReqToReq) {
- //init the right side requirements Array
- if (!this.rightSideLink.requirements[capObjKey]) {
- this.rightSideLink.requirements[capObjKey] = [];
- }
- this.rightSideLink.requirements[capObjKey].push(match);
- } else {
- //init the right side capabilities Array
- if (!this.rightSideLink.capabilities[capObjKey]) {
- this.rightSideLink.capabilities[capObjKey] = [];
- }
- //add to array
- this.rightSideLink.capabilities[capObjKey].push(match);
+ //init the right side capabilities Array
+ if (!this.rightSideLink.capabilities[capObjKey]) {
+ this.rightSideLink.capabilities[capObjKey] = [];
}
+ //add to array
+ this.rightSideLink.capabilities[capObjKey].push(match);
+
} else {
if (!this.rightSideLink.requirements[reqObjKey]) {
@@ -100,7 +91,7 @@ export class GraphLinkMenuSide {
this.requirements = {};
}
- public selectMatchArr(matchArr:Array<MatchBase>):void {
+ public selectMatchArr(matchArr:Array<Match>):void {
if (this.selectedMatch === matchArr) {
this.selectedMatch = undefined;
} else {
diff --git a/catalog-ui/src/app/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts b/catalog-ui/src/app/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts
index 6b2e12a215..42cce998f1 100644
--- a/catalog-ui/src/app/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts
+++ b/catalog-ui/src/app/models/graph/graph-links/composition-graph-links/composition-ci-ucpe-link.ts
@@ -29,7 +29,7 @@ export class CompositionCiUcpeLink extends CompositionCiLinkBase {
super(relation, singleRelation);
this.isFromUcpe = from;
this.target = relation.toNode;
- this.source = singleRelation.requirementOwnerId;
+ this.source = singleRelation.relation.requirementOwnerId;
this.relation.relationships = [singleRelation];
this.color = GraphColors.BASE_LINK;
}
diff --git a/catalog-ui/src/app/models/graph/graph-links/links-factory.ts b/catalog-ui/src/app/models/graph/graph-links/links-factory.ts
index 0be5d6faf6..88c5323330 100644
--- a/catalog-ui/src/app/models/graph/graph-links/links-factory.ts
+++ b/catalog-ui/src/app/models/graph/graph-links/links-factory.ts
@@ -46,7 +46,7 @@ export class LinksFactory {
// newRelation = new CompositionCiUcpeLink(relation, fromNode.isUcpePart, singleRelation);
// }
// } else
- if (singleRelation.relationship.type && _.includes(singleRelation.relationship.type.toLowerCase(), 'link')) {
+ if (singleRelation.relation.relationship.type && _.includes(singleRelation.relation.relationship.type.toLowerCase(), 'link')) {
newRelation = new CompositionCiVLink(relation, singleRelation);
} else {
newRelation = new CompositionCiSimpleLink(relation, singleRelation);
@@ -68,7 +68,7 @@ export class LinksFactory {
let newRelation:ModuleCiLinkBase;
- if (_.includes(singleRelation.relationship.type.toLowerCase(), 'link')) {
+ if (_.includes(singleRelation.relation.relationship.type.toLowerCase(), 'link')) {
newRelation = new ModuleCiVlLink(relation, singleRelation);
} else {
newRelation = new ModuleCiLinkBase(relation, singleRelation);
diff --git a/catalog-ui/src/app/models/graph/match-relation.ts b/catalog-ui/src/app/models/graph/match-relation.ts
index 4fb073d579..8d139d6405 100644
--- a/catalog-ui/src/app/models/graph/match-relation.ts
+++ b/catalog-ui/src/app/models/graph/match-relation.ts
@@ -20,80 +20,49 @@
'use strict';
import {Requirement} from "../requirement";
import {Capability} from "../capability";
-import {Relationship, RelationshipModel, RelationType} from "./relationship";
+import {Relationship, RelationshipModel} from "./relationship";
+import {PropertyModel} from "../properties";
-export class MatchBase {
+export class Match {
requirement:Requirement;
+ capability:Capability;
isFromTo:boolean;
fromNode:string;
toNode:string;
+ capabilityProperties:Array<PropertyModel>; // use this to store the capability properties, since there are times the capability itself is not available (when fulfilled).
+ private _relationship:Relationship;
- constructor(requirement:Requirement, isFromTo:boolean, fromNode:string, toNode:string) {
+ constructor(requirement:Requirement, capability:Capability, isFromTo:boolean, fromNode:string, toNode:string) {
this.requirement = requirement;
+ this.capability = capability;
this.isFromTo = isFromTo;
this.fromNode = fromNode;
this.toNode = toNode;
}
- public getDisplayText = (menuSide:string):string => {
- return '';
- };
-
- public isOwner = (id:string):boolean => {
- return false;
- }
-
-}
-
-export class MatchReqToReq extends MatchBase {
-
- secondRequirement:Requirement;
-
- constructor(requirement:Requirement, secondRequirement:Requirement, isFromTo:boolean, fromNode:string, toNode:string) {
- super(requirement, isFromTo, fromNode, toNode);
- this.secondRequirement = secondRequirement;
- }
-
- public getDisplayText = (menuSide:string):string => {
- if ('left' == menuSide) {
- return this.requirement.getFullTitle();
+ // NOTE: Hold the relationship instance for cases capability / requirement are not available (when fulfilled).
+ // In case relationship instance is not manually saved to here, then build the relationship from the given capability and requirement.
+ public get relationship():Relationship {
+ if (!this._relationship) {
+ this._relationship = this.matchToRelation();
}
- return this.secondRequirement.getFullTitle();
- };
-
- public isOwner = (id:string):boolean => {
- return this.secondRequirement.ownerId === id || this.requirement.ownerId === id;
+ return this._relationship;
}
-}
-
-export class MatchReqToCapability extends MatchBase {
-
- capability:Capability;
-
- constructor(requirement:Requirement, capability:Capability, isFromTo:boolean, fromNode:string, toNode:string) {
- super(requirement, isFromTo, fromNode, toNode);
- this.capability = capability;
+ public set relationship(relationship) {
+ this._relationship = relationship;
}
public matchToRelation = ():Relationship => {
- let relationship:Relationship = new Relationship();
- relationship.capability = this.capability.name;
- relationship.capabilityOwnerId = this.capability.ownerId;
- relationship.capabilityUid = this.capability.uniqueId;
- relationship.relationship = new RelationType(this.capability.type);
- relationship.requirement = this.requirement.name;
- relationship.requirementOwnerId = this.requirement.ownerId;
- relationship.requirementUid = this.requirement.uniqueId;
+ const relationship:Relationship = new Relationship();
+ relationship.setRelationProperties(this.capability, this.requirement);
return relationship;
};
-
public getDisplayText = (menuSide:string):string => {
if (this.isFromTo && 'left' == menuSide || !this.isFromTo && 'right' == menuSide) {
return this.requirement.getFullTitle();
}
return this.capability.getFullTitle();
-
};
public isOwner = (id:string):boolean => {
@@ -108,4 +77,3 @@ export class MatchReqToCapability extends MatchBase {
};
}
-
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts
index 681cebc8d2..3b634b1f6e 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-base.ts
@@ -48,7 +48,6 @@ export abstract class CompositionCiNodeBase extends CommonCINodeBase implements
this.isGroup = false;
this.isUcpePart = false;
this.isInsideGroup = false;
-
}
public initUncertifiedImage(node:Cy.Collection, nodeMinSize:number):string {
@@ -61,8 +60,10 @@ export abstract class CompositionCiNodeBase extends CommonCINodeBase implements
uncertifiedCanvasWidth = nodeWidth + uncertifiedIconWidth/2; //expand canvas so that only half of the icon overlaps with the node
}
- this.imageCreator.getImageBase64(this.imagesPath + ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png',
- this.imagesPath + ImagesUrl.RESOURCE_ICONS + 'uncertified.png', nodeWidth, uncertifiedCanvasWidth, uncertifiedIconWidth)
+
+
+ this.imageCreator.getImageBase64(this.imagesPath + this.componentInstance.icon + '.png',
+ this.imagesPath + 'uncertified.png', nodeWidth, uncertifiedCanvasWidth, uncertifiedIconWidth)
.then(imageBase64 => {
this.img = imageBase64;
node.style({
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-configuration.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-configuration.ts
new file mode 100644
index 0000000000..1182f5e664
--- /dev/null
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-configuration.ts
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+import { ImagesUrl, GraphUIObjects} from "../../../../utils/constants";
+import {ComponentInstance, CompositionCiNodeBase} from "../../../../models";
+import {ImageCreatorService} from "../../../../directives/graphs-v2/image-creator/image-creator.service";
+export class CompositionCiNodeConfiguration extends CompositionCiNodeBase {
+
+ constructor(instance:ComponentInstance,
+ imageCreator:ImageCreatorService) {
+ super(instance, imageCreator);
+ this.initConfiguration();
+ }
+
+ private initConfiguration():void {
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
+ this.img = this.imagesPath + this.componentInstance.icon + '.png';
+ this.imgWidth = GraphUIObjects.SMALL_RESOURCE_WIDTH;
+ this.type = "basic-small-node";
+ this.classes = 'configuration-node';
+ }
+}
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts
index cded0ea104..3bd57695ec 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-cp.ts
@@ -34,7 +34,8 @@ export class CompositionCiNodeCp extends CompositionCiNodeBase {
private initCp():void {
let sdcConfig = AngularJSBridge.getAngularConfig();
- this.img = sdcConfig.imagesPath + ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png';
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
+ this.img = this.imagesPath + this.componentInstance.icon + '.png';
this.imgWidth = GraphUIObjects.SMALL_RESOURCE_WIDTH;
this.type = "basic-small-node";
//if the cp from type cpEndPointInstances create with another template
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service-proxy.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service-proxy.ts
new file mode 100644
index 0000000000..b993490043
--- /dev/null
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service-proxy.ts
@@ -0,0 +1,42 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+import { ImagesUrl, GraphUIObjects} from "../../../../utils/constants";
+import {ComponentInstance, CompositionCiNodeBase} from "../../../../models";
+import {ImageCreatorService} from "../../../../directives/graphs-v2/image-creator/image-creator.service";
+export class CompositionCiNodeServiceProxy extends CompositionCiNodeBase {
+
+ constructor(instance:ComponentInstance,
+ imageCreator:ImageCreatorService) {
+ super(instance, imageCreator);
+ this.initService();
+ }
+
+ private initService():void {
+ this.imagesPath = this.imagesPath + ImagesUrl.SERVICE_PROXY_ICONS;
+ this.img = this.imagesPath + this.componentInstance.icon + '.png';
+ this.imgWidth = GraphUIObjects.DEFAULT_RESOURCE_WIDTH;
+ this.classes = 'service-node'
+ if (!this.certified) {
+ this.classes = this.classes + ' not-certified';
+ }
+
+ }
+}
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts
index 81ee61a14f..b4e6ac354a 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-service.ts
@@ -30,7 +30,7 @@ export class CompositionCiNodeService extends CompositionCiNodeBase {
}
private initService():void {
-
+ this.imagesPath = this.imagesPath + ImagesUrl.SERVICE_ICONS;
this.img = this.imagesPath + ImagesUrl.SERVICE_ICONS + this.componentInstance.icon + '.png';
this.imgWidth = GraphUIObjects.DEFAULT_RESOURCE_WIDTH;
this.classes = 'service-node'
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts
index 5013e52457..a79b183db4 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe-cp.ts
@@ -20,6 +20,7 @@
import {CompositionCiNodeCp, ComponentInstance} from "./../../../../models";
import {ImageCreatorService} from "../../../../directives/graphs-v2/image-creator/image-creator.service";
+import { ImagesUrl} from "../../../../utils/constants";
export class CompositionCiNodeUcpeCp extends CompositionCiNodeCp {
@@ -31,5 +32,6 @@ export class CompositionCiNodeUcpeCp extends CompositionCiNodeCp {
this.parent = instance.uniqueId;
this.type = 'ucpe-cp-node'; //the type is for the handle (plus icon) extension
this.isDraggable = false;
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
}
}
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts
index b8f844cba8..3dd6a4e238 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-ucpe.ts
@@ -21,6 +21,7 @@
import {ComponentInstance} from "../../../componentsInstances/componentInstance";
import {ImageCreatorService} from "../../../../directives/graphs-v2/image-creator/image-creator.service";
import {CompositionCiNodeBase} from "./composition-ci-node-base";
+import { ImagesUrl} from "../../../../utils/constants";
export class NodeUcpe extends CompositionCiNodeBase {
constructor(instance:ComponentInstance,
@@ -36,6 +37,7 @@ export class NodeUcpe extends CompositionCiNodeBase {
this.classes = 'ucpe-node';
this.type = 'ucpe-node';
this.allowConnection = false;
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
if (!this.certified) {
this.classes = this.classes + ' not-certified-ucpe';
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts
index 005804c11f..b5ad57a5c3 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vf.ts
@@ -31,7 +31,8 @@ export class CompositionCiNodeVf extends CompositionCiNodeBase {
}
private initVf():void {
- this.img = this.imagesPath + ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png';
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
+ this.img = this.imagesPath + this.componentInstance.icon + '.png';
this.imgWidth = GraphUIObjects.DEFAULT_RESOURCE_WIDTH;
this.classes = 'vf-node';
if (!this.certified) {
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts
index c8ae004003..5f07986d5c 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vfc.ts
@@ -29,6 +29,7 @@ export class CompositionCiNodeVfc extends CompositionCiNodeBase {
}
private initVfc():void {
- this.img = this.imagesPath + ImagesUrl.RESOURCE_ICONS + this.componentInstance.icon + '.png';
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
+ this.img = this.imagesPath + this.componentInstance.icon + '.png';
}
}
diff --git a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts
index bf52ec0408..29cd9256d9 100644
--- a/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts
+++ b/catalog-ui/src/app/models/graph/nodes/composition-graph-nodes/composition-ci-node-vl.ts
@@ -48,6 +48,7 @@ export class CompositionCiNodeVl extends CompositionCiNodeBase {
}
this.img = this.imagesPath + ImagesUrl.RESOURCE_ICONS + 'vl.png';
this.imgWidth = GraphUIObjects.SMALL_RESOURCE_WIDTH;
+ this.imagesPath = this.imagesPath + ImagesUrl.RESOURCE_ICONS;
this.classes = 'vl-node';
if (!this.certified) {
diff --git a/catalog-ui/src/app/models/graph/nodes/modules-graph-nodes/module-node-base.ts b/catalog-ui/src/app/models/graph/nodes/modules-graph-nodes/module-node-base.ts
index ccc8ed4afa..4e9fb0b0ab 100644
--- a/catalog-ui/src/app/models/graph/nodes/modules-graph-nodes/module-node-base.ts
+++ b/catalog-ui/src/app/models/graph/nodes/modules-graph-nodes/module-node-base.ts
@@ -24,6 +24,7 @@
import {ImagesUrl} from "../../../../utils/constants";
import {Module} from "../../../modules/base-module";
import {CommonNodeBase} from "../base-common-node";
+import {AngularJSBridge} from "../../../../services/angular-js-bridge-service";
export interface IModuleNodeBase {
}
@@ -44,7 +45,7 @@ export class ModuleNodeBase extends CommonNodeBase implements IModuleNodeBase {
this.name = this.module.name;
this.displayName = this.module.name;
this.isGroup = true;
- this.img = ImagesUrl.MODULE_ICON;
+ this.img = AngularJSBridge.getAngularConfig().imagesPath + ImagesUrl.MODULE_ICON;
this.classes = "module-node";
}
diff --git a/catalog-ui/src/app/models/graph/nodes/nodes-factory.ts b/catalog-ui/src/app/models/graph/nodes/nodes-factory.ts
index c7f8eaa126..245f2e10d9 100644
--- a/catalog-ui/src/app/models/graph/nodes/nodes-factory.ts
+++ b/catalog-ui/src/app/models/graph/nodes/nodes-factory.ts
@@ -19,8 +19,8 @@
*/
'use strict';
-import {CompositionCiNodeUcpeCp, Module, ModuleNodeBase, CompositionCiNodeVf, CompositionCiNodeVl, CompositionCiNodeCp,
- NodeUcpe, CompositionCiNodeService, CompositionCiNodeBase, ComponentInstance} from "./../../../models";
+import {CompositionCiNodeUcpeCp, Module, ModuleNodeBase, CompositionCiNodeVf, CompositionCiNodeVl, CompositionCiNodeCp, CompositionCiNodeConfiguration,
+ NodeUcpe, CompositionCiNodeService,CompositionCiNodeServiceProxy, CompositionCiNodeBase, ComponentInstance} from "./../../../models";
import {ComponentType, ResourceType} from "../../../utils/constants";
import {ImageCreatorService} from "../../../directives/graphs-v2/image-creator/image-creator.service";
@@ -37,12 +37,18 @@ export class NodesFactory {
if (instance.originType === ComponentType.SERVICE) {
return new CompositionCiNodeService(instance, this.imageCreator);
}
+ if (instance.originType === ComponentType.SERVICE_PROXY) {
+ return new CompositionCiNodeServiceProxy(instance, this.imageCreator);
+ }
if (instance.originType === ResourceType.CP) {
return new CompositionCiNodeCp(instance, this.imageCreator);
}
if (instance.originType === ResourceType.VL) {
return new CompositionCiNodeVl(instance, this.imageCreator);
}
+ if (instance.originType === ResourceType.CONFIGURATION) {
+ return new CompositionCiNodeConfiguration(instance, this.imageCreator);
+ }
return new CompositionCiNodeVf(instance, this.imageCreator);
};
diff --git a/catalog-ui/src/app/models/graph/relationship.ts b/catalog-ui/src/app/models/graph/relationship.ts
index 67a5488b59..57ff45ef00 100644
--- a/catalog-ui/src/app/models/graph/relationship.ts
+++ b/catalog-ui/src/app/models/graph/relationship.ts
@@ -58,7 +58,8 @@ export class RelationType {
}
}
-export class Relationship {
+export class RelationshipType {
+ id:string;
capability:string;
capabilityOwnerId:string;
capabilityUid:string;
@@ -67,8 +68,9 @@ export class Relationship {
requirementOwnerId:string;
requirementUid:string;
- constructor(relationship?:Relationship) {
+ constructor(relationship?:RelationshipType) {
if (relationship) {
+ this.id = relationship.id;
this.capability = relationship.capability;
this.capabilityOwnerId = relationship.capabilityOwnerId;
this.capabilityUid = relationship.capabilityUid;
@@ -79,17 +81,41 @@ export class Relationship {
} else {
this.relationship = new RelationType();
}
-
}
- public setRelationProperties = (capability:Capability, requirement:Requirement)=> {
- this.capability = capability.name;
- this.capabilityOwnerId = capability.ownerId;
- this.capabilityUid = capability.uniqueId;
- this.relationship = new RelationType(capability.type);
- this.requirement = requirement.name;
- this.requirementOwnerId = requirement.ownerId;
- this.requirementUid = requirement.uniqueId;
+ public setRelationProperties = (capability?:Capability, requirement?:Requirement)=> {
+ if (capability) {
+ this.capability = capability.name;
+ this.capabilityOwnerId = capability.ownerId;
+ this.capabilityUid = capability.uniqueId;
+ this.relationship = new RelationType(capability.type);
+ }
+ if (requirement) {
+ this.requirement = requirement.name;
+ this.requirementOwnerId = requirement.ownerId;
+ this.requirementUid = requirement.uniqueId;
+ }
};
+}
+
+export class Relationship {
+ relation: RelationshipType;
+ capability?: Capability;
+ requirement?: Requirement;
+
+ constructor(fullRelationship?:Relationship) {
+ if (fullRelationship) {
+ this.relation = new RelationshipType(fullRelationship.relation);
+ this.capability = fullRelationship.capability && new Capability(fullRelationship.capability);
+ this.requirement = fullRelationship.requirement && new Requirement(fullRelationship.requirement);
+ } else {
+ this.relation = new RelationshipType();
+ }
+ }
+ public setRelationProperties(capability?:Capability, requirement?:Requirement) {
+ this.relation.setRelationProperties(capability, requirement);
+ this.capability = capability;
+ this.requirement = requirement;
+ };
}