1 <ng1-modal modal="modalInstanceProperty" type="classic" class="sdc-edit-property-container" buttons="footerButtons" header="{{isNew ? 'Add' : 'Update' }} Property" show-close-button="true" data-tests-id="sdc-edit-property-container">
2 <loader data-display="isLoading" relative="false" size="medium"></loader>
3 <div class="sdc-modal-top-bar" data-ng-if="!isNew">
4 <div class="sdc-modal-top-bar-buttons">
5 <span ng-click="delete(editPropertyModel.property)" data-ng-class="{'disabled' : isPropertyValueOwner || editPropertyModel.property.readonly || propertyOwnerType == 'group' || propertyOwnerType == 'policy'}" class="sprite-new delete-btn" data-tests-id="delete_property" sdc-smart-tooltip="">Delete</span>
6 <span class="delimiter"></span>
7 <span data-ng-click="getPrev()" data-ng-class="{'disabled' : !currentPropertyIndex }" class="sprite-new left-arrow" data-tests-id="get-prev" sdc-smart-tooltip="">Previous</span>
8 <span data-ng-click="getNext()" data-ng-class="{'disabled' : isLastProperty }" class="sprite-new right-arrow" data-tests-id="get-next" sdc-smart-tooltip="">Next</span>
12 <div class="sdc-edit-property-form-container" >
13 <perfect-scrollbar scroll-y-margin-offset="0" include-padding="true" class="scrollbar-container">
14 <form novalidate class="w-sdc-form two-columns" name="forms.editForm" >
16 <div class="w-sdc-form-columns-wrapper">
18 <div class="w-sdc-form-column">
21 <div class="i-sdc-form-item" data-ng-class="{error:(forms.editForm.propertyName.$dirty && forms.editForm.propertyName.$invalid)}">
22 <label class="i-sdc-form-label" ng-class="{'required': !isService}">Name</label>
23 <input class="i-sdc-form-input"
24 data-tests-id="propertyName"
25 data-ng-maxlength="50"
26 data-ng-disabled="!isNew || editPropertyModel.property.readonly"
28 data-ng-model="editPropertyModel.property.name"
31 data-ng-pattern="propertyNameValidationPattern"
33 data-ng-model-options="{ debounce: 200 }"
36 <div class="input-error" data-ng-show="forms.editForm.propertyName.$dirty && forms.editForm.propertyName.$invalid">
37 <span ng-show="forms.editForm.propertyName.$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Property name' }"></span>
38 <span ng-show="forms.editForm.propertyName.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span>
39 <span ng-show="forms.editForm.propertyName.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
44 <div class="w-sdc-form-column">
45 <div class="w-sdc-form-columns-wrapper">
46 <div class="w-sdc-form-column">
48 <div class="i-sdc-form-item" data-ng-class="{error:(forms.editForm.type.$dirty && forms.editForm.type.$invalid)}">
49 <label class="i-sdc-form-label" ng-class="{'required': !isService}">Type</label>
50 <select class="i-sdc-form-select"
51 data-tests-id="propertyType"
53 data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly"
55 data-ng-change="onTypeChange()"
56 data-ng-model="editPropertyModel.property.type">
57 <option value="">Choose Type</option>
58 <option data-ng-repeat="type in editPropertyModel.types"
59 value="{{type}}">{{type}}</option>
60 <option data-ng-repeat="type in nonPrimitiveTypes"
61 value="{{type}}">{{type.replace("org.openecomp.datatypes.heat.","")}}</option>
64 <div class="input-error" data-ng-show="forms.editForm.type.$dirty && forms.editForm.type.$invalid">
65 <span ng-show="forms.editForm.type.$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Type' }"></span>
69 <div class="w-sdc-form-column" data-ng-if="showSchema()">
71 <div class="i-sdc-form-item" data-ng-class="{error:(forms.editForm.schemaType.$dirty && forms.editForm.schemaType.$invalid)}">
72 <label class="i-sdc-form-label required">Entry Schema</label>
73 <select class="i-sdc-form-select"
75 data-tests-id="schema-type"
76 data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly"
78 data-ng-change="onSchemaTypeChange()"
79 data-ng-model="editPropertyModel.property.schema.property.type">
80 <option value="">Choose Schema Type</option>
81 <option data-ng-repeat="type in editPropertyModel.simpleTypes"
82 value="{{type}}">{{type}}</option>
83 <option data-ng-repeat="type in nonPrimitiveTypes"
84 value="{{type}}">{{type.replace("org.openecomp.datatypes.heat.","")}}</option>
87 <div class="input-error" data-ng-show="forms.editForm.schemaType.$dirty && forms.editForm.schemaType.$invalid">
88 <span ng-show="forms.editForm.schemaType.$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Entry schema' }"></span>
94 <!-- Constraints by type -->
95 <div class="i-sdc-form-item" data-ng-if="false">
96 <label class="i-sdc-form-label required">Constraints by type</label>
98 Should be constraints by type(TBD)
106 <div class="i-sdc-form-item" data-ng-class="{error:(forms.editForm.description.$dirty && forms.editForm.description.$invalid)}">
107 <label class="i-sdc-form-label">Description</label>
108 <textarea class="i-sdc-form-textarea"
109 data-ng-maxlength="400"
110 data-ng-disabled="isPropertyValueOwner || editPropertyModel.property.readonly"
112 data-ng-pattern="commentValidationPattern"
114 data-ng-model="editPropertyModel.property.description"
115 data-ng-model-options="{ debounce: 200 }"
116 data-tests-id="description"
119 <div class="input-error" data-ng-show="forms.editForm.description.$dirty && forms.editForm.description.$invalid">
120 <span ng-show="forms.editForm.description.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '256' }"></span>
121 <span ng-show="forms.editForm.description.$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
122 <span ng-show="forms.editForm.description.$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Description' }"></span>
125 <!-- Default value -->
127 <div class="default-value-section i-sdc-form-item">
128 <label class="i-sdc-form-label">Default Value</label>
129 <div data-ng-if="isTypeDataType">
130 <fields-structure value-obj-ref="myValue"
131 type-name="editPropertyModel.property.type"
132 parent-form-obj="forms.editForm"
133 fields-prefix-name="currentPropertyIndex"
134 read-only="editPropertyModel.property.readonly && !isPropertyValueOwner"
135 default-value="{{getDefaultValue()}}"
136 expand-by-default="true"></fields-structure>
139 <div data-ng-if="!isTypeDataType" ng-switch="editPropertyModel.property.type">
140 <div ng-switch-when="map">
141 <type-map value-obj-ref="myValue"
142 schema-property="editPropertyModel.property.schema.property"
143 parent-form-obj="forms.editForm"
144 fields-prefix-name="currentPropertyIndex"
145 read-only="(editPropertyModel.property.readonly && !isPropertyValueOwner) || isVnfConfiguration"
146 default-value="{{getDefaultValue()}}"
147 max-length="maxLength"></type-map>
149 <div ng-switch-when="list">
150 <type-list value-obj-ref="myValue"
151 schema-property="editPropertyModel.property.schema.property"
152 parent-form-obj="forms.editForm"
153 fields-prefix-name="currentPropertyIndex"
154 read-only="editPropertyModel.property.readonly && !isPropertyValueOwner"
155 default-value="{{getDefaultValue()}}"
156 max-length="maxLength"></type-list>
158 <div ng-switch-default>
159 <div class="i-sdc-form-item" data-ng-class="{error:(forms.editForm.value.$dirty && forms.editForm.value.$invalid), 'input-group' : editPropertyModel.property.addOn}">
160 <span ng-if="editPropertyModel.property.addOn" class="input-group-addon">{{editPropertyModel.property.addOn}}</span>
161 <input class="i-sdc-form-input"
162 data-tests-id="defaultvalue"
163 ng-if="!((editPropertyModel.property.simpleType||editPropertyModel.property.type) == 'boolean')"
164 data-ng-maxlength="maxLength"
165 data-ng-disabled="editPropertyModel.property.readonly && !isPropertyValueOwner"
166 maxlength="{{maxLength}}"
167 data-ng-model="editPropertyModel.property.value"
170 data-ng-pattern="getValidationPattern((editPropertyModel.property.simpleType||editPropertyModel.property.type))"
171 data-ng-model-options="{ debounce: 200 }"
172 data-ng-change="('json'==editPropertyModel.property.type && forms.editForm.value.$setValidity('pattern', validateJson(editPropertyModel.property.value)))
173 ||(!forms.editForm.value.$error.pattern && ('integer'==editPropertyModel.property.type && forms.editForm.value.$setValidity('pattern', validateIntRange(editPropertyModel.property.value)) || onValueChange()))"
176 <select class="i-sdc-form-select"
177 data-tests-id="booleantype"
178 ng-if="(editPropertyModel.property.simpleType||editPropertyModel.property.type) == 'boolean'"
179 data-ng-disabled="editPropertyModel.property.readonly && !isPropertyValueOwner"
181 data-ng-change="onValueChange()"
182 data-ng-model="editPropertyModel.property.value">
183 <option value="true">true</option>
184 <option value="false">false</option>
187 <div class="input-error" data-ng-show="forms.editForm.value.$dirty && forms.editForm.value.$invalid">
188 <span ng-show="forms.editForm.value.$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Property' }"></span>
189 <span ng-show="forms.editForm.value.$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '{{maxLength}}' }"></span>
190 <span ng-show="forms.editForm.value.$error.pattern" translate="PROPERTY_EDIT_PATTERN"></span>
196 <span class="w-sdc-form-note" data-ng-show="forms.editForm.$invalid && false" translate="LABEL_ALL_FIELDS_ARE_MANDATORY"></span>