Catalog alignment
[sdc.git] / catalog-ui / src / app / directives / select-property-types / select-data-type-fields-structure / select-data-type-fields-structure.html
1 <!--
2   ~ Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
3   ~
4   ~ Licensed under the Apache License, Version 2.0 (the "License");
5   ~ you may not use this file except in compliance with the License.
6   ~ You may obtain a copy of the License at
7   ~
8   ~      http://www.apache.org/licenses/LICENSE-2.0
9   ~
10   ~ Unless required by applicable law or agreed to in writing, software
11   ~ distributed under the License is distributed on an "AS IS" BASIS,
12   ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   ~ See the License for the specific language governing permissions and
14   ~ limitations under the License.
15   -->
16  
17  
18 <div class="data-type-fields-structure">
19     <div class="open-close">
20         <div class="open-close-button" data-ng-class="{'expand':expand,'collapse':!expand}"
21              data-ng-click="expandAndCollapse()"></div>
22         <span class="data-type-name">{{typeName.replace("org.openecomp.datatypes.heat.","")}}</span>
23     </div>
24     <div data-ng-show="expand" data-ng-repeat="property in dataTypeProperties" class="property" data-ng-init="property.isAlreadyInput = isAlreadyInput(property)">
25
26             <sdc-radio-button sdc-model="dataTypesService.selectedPropertiesName" value="{{path + '#' + property.name}}" data-ng-if="path && !property.isAlreadyInput"
27                               disabled="false" elem-name="selectedPropertiesName" elem-id="{{path + '#' + property.name}}" class="selectPropertyType"
28                               on-value-change="setSelectedType(property)" data-tests-id="propertyRadioButton_{{property.name}}"></sdc-radio-button>
29         <div class="existInputContainer" data-ng-if="property.isAlreadyInput"><span class="existInput"></span></div>
30         <div class="i-sdc-form-item property-name">
31             <div tooltips tooltip-content="{{property.name}}">
32                 <input class="i-sdc-form-input"
33                        type="text"
34                        data-ng-disabled="true"
35                        value="{{property.name}}"/>
36             </div>
37         </div>
38         <div data-ng-if="dataTypesService.isDataTypeForDataTypePropertyType(property)" class="inner-structure">
39             <select-fields-structure value-obj-ref="(valueObjRef[property.name])"
40                                      type-name="property.type"
41                                      parent-form-obj="parentFormObj"
42                                      fields-prefix-name="fieldsPrefixName+property.name"
43                                      read-only="readOnly"
44                                      default-value="{{currentTypeDefaultValue[property.name]}}"
45                                      path="{{path + '#' + property.name}}"
46                                      is-parent-already-input="isParentAlreadyInput"
47             ></select-fields-structure>
48
49         </div>
50         <div data-ng-if="!dataTypesService.isDataTypeForDataTypePropertyType(property)" ng-switch="property.type">
51             <div ng-switch-when="map">
52                 <select-type-map value-obj-ref="valueObjRef[property.name]"
53                                  schema-property="property.schema.property"
54                                  parent-form-obj="parentFormObj"
55                                  fields-prefix-name="fieldsPrefixName+property.name"
56                                  read-only="readOnly"
57                                  default-value="{{currentTypeDefaultValue[property.name]}}"
58                 ></select-type-map>
59             </div>
60             <div ng-switch-when="list">
61                 <select-type-list value-obj-ref="valueObjRef[property.name]"
62                                   schema-property="property.schema.property"
63                                   parent-form-obj="parentFormObj"
64                                   fields-prefix-name="fieldsPrefixName+property.name"
65                                   read-only="readOnly"
66                                   default-value="{{currentTypeDefaultValue[property.name]}}"
67                 ></select-type-list>
68             </div>
69             <div ng-switch-default class="primitive-value-field">
70                 <div class="i-sdc-form-item"
71                      data-ng-class="{error:(parentFormObj[fieldsPrefixName+property.name].$dirty && parentFormObj[fieldsPrefixName+property.name].$invalid)}">
72                     <input class="i-sdc-form-input"
73                            data-tests-id="{{fieldsPrefixName+property.name}}"
74                            ng-if="!((property.simpleType||property.type) == 'boolean')"
75                            data-ng-maxlength="100"
76                            data-ng-disabled="readOnly"
77                            maxlength="100"
78                            data-ng-model="valueObjRef[property.name]"
79                            type="text"
80                            name="{{fieldsPrefixName+property.name}}"
81                            data-ng-model-options="{ debounce: 200 }"
82                            data-ng-change="!parentFormObj[fieldsPrefixName+property.name].$error.pattern && ('integer'==property.type && parentFormObj[fieldsPrefixName+property.name].$setValidity('pattern', validateIntRange(valueObjRef[property.name])) || onValueChange(property.name, (property.simpleType||property.type)))"
83                            autofocus/>
84                     <select class="i-sdc-form-select"
85                             data-tests-id="{{fieldsPrefixName+property.name}}"
86                             ng-if="(property.simpleType||property.type) == 'boolean'"
87                             data-ng-disabled="readOnly"
88                             name="{{fieldsPrefixName+property.name}}"
89                             data-ng-change="onValueChange(property.name,'boolean')"
90                             data-ng-model="valueObjRef[property.name]"
91                             data-ng-options="option.v as option.n for option in [{ n: '', v: undefined }, { n: 'false', v: false }, { n: 'true', v: true }]">
92                     </select>
93                     
94
95                 </div>
96             </div>
97         </div>
98     </div>
99 </div>