Support TOSCA functions in Node Filters
[sdc.git] / catalog-ui / src / app / ng2 / pages / service-dependencies-editor / service-dependencies-editor.component.html
1 <div class="service-dependencies-editor">
2     <form class="w-sdc-form">
3
4         <loader [display]="isLoading" [size]="'large'" [relative]="true"></loader>
5
6         <div class="i-sdc-form-content">
7             <div class="rule-builder-content">
8                 <div class="i-sdc-form-item rule-input-field property">
9                     <label class="i-sdc-form-label required">{{"PROPERTY_LABEL" | translate}}</label>
10                     <ui-element-dropdown
11                             class="i-sdc-form-select"
12                             data-tests-id="servicePropertyName"
13                             [values]="ddValueSelectedServicePropertiesNames"
14                             [(value)]="currentRule.servicePropertyName"
15                             (change)="onServicePropertyChanged()">
16                     </ui-element-dropdown>
17                 </div>
18
19                 <div class="i-sdc-form-item rule-input-field operator">
20                     <label class="i-sdc-form-label required">{{"OPERATOR_LABEL" | translate}}</label>
21                     <ui-element-dropdown class="i-sdc-form-select" data-tests-id="constraintOperator" [values]="operatorTypes" [(value)]="currentRule.constraintOperator"></ui-element-dropdown>
22                 </div>
23             </div>
24             <div class="rule-builder-content">
25                 <div class="i-sdc-form-item">
26                     <label class="i-sdc-form-label required">Value Type</label>
27                     <input type="radio" name="sourceType"
28                            data-tests-id="value-type-static"
29                            [(ngModel)]="selectedSourceType"
30                            [value]="SOURCE_TYPES.STATIC.value"
31                            (ngModelChange)="onSourceTypeChange()"/> {{"VALUE_LABEL" | translate}}
32                     <input type="radio" name="sourceType"
33                            data-tests-id="value-type-tosca-function"
34                            [(ngModel)]="selectedSourceType"
35                            [value]="SOURCE_TYPES.TOSCA_FUNCTION.value"
36                            (ngModelChange)="onSourceTypeChange()"/> {{"VALUE_EXPRESSION_LABEL" | translate}}
37                 </div>
38             </div>
39             <div class="rule-builder-content" *ngIf="isToscaFunctionSource() && selectedProperty">
40                 <div class="i-sdc-form-item rule-input-field">
41                     <tosca-function [property]="selectedProperty"
42                                     [componentInstanceMap]="componentInstanceMap"
43                                     [allowClear]="false"
44                                     (onValidityChange)="onToscaFunctionValidityChange($event)"
45                     >
46                     </tosca-function>
47                 </div>
48             </div>
49             <div *ngIf="isToscaFunctionSource() && !selectedProperty">
50                 {{"NODE_FILTER_SELECT_PROPERTY" | translate}}
51             </div>
52             <div class="rule-builder-content" *ngIf="isStaticSource()">
53                 <div class="i-sdc-form-item rule-input-field complex-input-field">
54                     <dynamic-property
55                         *ngIf="isComplexListMapType()"
56                         [selectedPropertyId]="selectedProperty.uniqueId"
57                         [property]="selectedProperty"
58                         [expandedChildId]="selectedProperty.expandedChildPropertyId ?
59                                 selectedProperty.expandedChildPropertyId : selectedProperty.name"
60                         [canBeDeclared]="true"
61                         (propertyChanged)="updateComplexListMapTypeRuleValue()"
62                         [rootProperty]="selectedProperty"
63                         (expandChild)="selectedProperty.updateExpandedChildPropertyId($event)">
64                     </dynamic-property>
65                     <dynamic-element
66                         *ngIf="!isComplexListMapType()"
67                         [(value)]="currentRule.value"
68                         class="rule-assigned-value"
69                         data-tests-id="ruleAssignedValue"
70                         (elementChanged)="onValueChange($event.isValid)"
71                         [type]="selectedProperty ? selectedProperty.type : 'string'">
72                     </dynamic-element>
73                 </div>
74             </div>
75         </div>
76     </form>
77 </div>