1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
import { Component, Input } from '@angular/core';
import { Component as TopologyTemplate, RelationshipModel, Relationship, Requirement } from "app/models";
import { CompositionService } from "app/ng2/pages/composition/composition.service";
import { ResourceNamePipe } from "app/ng2/pipes/resource-name.pipe";
import { ComponentInstanceServiceNg2 } from "app/ng2/services/component-instance-services/component-instance.service";
import { WorkspaceService } from "app/ng2/pages/workspace/workspace.service";
@Component({
selector: 'requirement-list',
templateUrl: './requirement-list.component.html'
})
export class RequirementListComponent {
@Input() component: TopologyTemplate;
@Input() requirements: Array<Requirement>;
@Input() isInstanceSelected:boolean;
@Input() isViewOnly: boolean;
readonly:boolean;
constructor(private compositionService: CompositionService,
private workspaceService: WorkspaceService,
private componentInstanceServiceNg2: ComponentInstanceServiceNg2) {}
public getRelation = (requirement:any):any => {
if (this.isInstanceSelected && this.component.componentInstancesRelations) {
let relationItem:Array<RelationshipModel> = _.filter(this.component.componentInstancesRelations, (relation:RelationshipModel) => {
return relation.fromNode === this.component.uniqueId &&
_.filter(relation.relationships, (relationship:Relationship) => {
return relationship.relation.requirement == requirement.name && relationship.relation.requirementOwnerId == requirement.ownerId;
}).length;
});
if (relationItem && relationItem.length) {
return {
type: requirement.relationship.split('.').pop(),
requirementName: ResourceNamePipe.getDisplayName(this.compositionService.componentInstances[_.map
(this.compositionService.componentInstances, "uniqueId").indexOf(relationItem[0].toNode)].name)
};
}
}
return null;
};
onMarkAsExternal(requirement:Requirement) {
if (requirement.external){
requirement.external = false;
} else {
requirement.external = true;
}
this.componentInstanceServiceNg2.updateInstanceRequirement(this.workspaceService.metadata.getTypeUrl(), this.workspaceService.metadata.uniqueId, this.component.uniqueId, requirement).subscribe((response:any) => {
}, (error) => { console.log("An error has occured setting external: ", error); });;
}
};
|