aboutsummaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/drawingBoard/available-models-tree/available-models-tree.service.ts
blob: 57dc4b40911316f4d20ed08b674609d1373b5328 (plain)
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
import {Injectable} from '@angular/core';
import * as _ from "lodash";
import {ServicePlanningService} from "../../services/service-planning.service";

@Injectable()
export class AvailableModelsTreeService {
  constructor(private _servicePlanningService: ServicePlanningService) {
  }

  shouldShowAddIcon(node: any, serviceHierarchy: any, serviceModelId: string, currentNodeCount: number): boolean {
    let maxNodes: number = 1;
    if (node.data.children !== null && node.data.children.length == 0) {
      let vnfModules = serviceHierarchy[serviceModelId].vfModules;
      if (vnfModules[node.data.name]) {
        maxNodes = vnfModules[node.data.name].properties.maxCountInstances || 1;
      }
    }
    return !node.data.disabled && currentNodeCount < maxNodes
  }

  shouldOpenDialog(type: string, dynamicInputs: any, userProvidedNaming: boolean): boolean {
    if (userProvidedNaming || this._servicePlanningService.requiredFields[type].length > 0) {
      return true;
    }

    if (dynamicInputs) {
      for(let input of dynamicInputs) {
        if (input.isRequired && _.isEmpty(input.value)) {
          return true;
        }
      }
    }
    return false;
  }

}