[SDC] rebase 1710 code
[sdc.git] / catalog-ui / src / app / directives / property-types / type-map / type-map-directive.html
1 <div>
2     <div data-ng-repeat="i in getNumber(mapKeys.length) track by $index" class="map-item" data-ng-class="{'primitive-value-map':!isSchemaTypeDataType}">
3         <div class="i-sdc-form-item map-item-field" data-ng-class="{error:(parentFormObj['mapKey'+fieldsPrefixName+$index].$dirty && parentFormObj['mapKey'+fieldsPrefixName+$index].$invalid)}">
4             <label class="i-sdc-form-label required">Key</label>
5             <input class="i-sdc-form-input"
6                    data-tests-id="mapKey{{fieldsPrefixName}}{{$index}}"
7                    data-ng-model="mapKeys[$index]"
8                    type="text"
9                    data-ng-maxlength="50"
10                    maxlength="50"
11                    name="mapKey{{fieldsPrefixName}}{{$index}}"
12                    data-ng-pattern="MapKeyValidationPattern"
13                    data-ng-model-options="{ debounce: 200 }"
14                    data-ng-change="changeKeyOfMap(mapKeys[$index], $index,'mapKey'+fieldsPrefixName+$index);$event.stopPropagation();"
15                    data-ng-disabled="readOnly"
16                    data-required
17                    autofocus/>
18             <div class="input-error" data-ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$dirty && parentFormObj['mapKey'+fieldsPrefixName+$index].$invalid">
19                 <span ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$error.keyExist" translate="PROPERTY_EDIT_MAP_UNIQUE_KEYS"></span>
20                 <span ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Key' }"></span>
21                 <span ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '50' }"></span>
22                 <span ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$error.pattern" translate="VALIDATION_ERROR_SPECIAL_CHARS_NOT_ALLOWED"></span>
23             </div>
24         </div>
25         <div data-ng-if="!isSchemaTypeDataType" class="i-sdc-form-item map-item-field" data-ng-class="{error:(parentFormObj['mapValue'+fieldsPrefixName+$index].$dirty && parentFormObj['mapValue'+fieldsPrefixName+$index].$invalid)}">
26             <label class="i-sdc-form-label required">Value</label>
27             <input class="i-sdc-form-input"
28                    ng-if="!((schemaProperty.simpleType||schemaProperty.type) == 'boolean')"
29                    data-ng-disabled="readOnly"
30                    data-ng-model="valueObjRef[mapKeys[$index]]"
31                    type="text"
32                    name="mapValue{{fieldsPrefixName}}{{$index}}"
33                    data-tests-id="mapValue{{fieldsPrefixName}}{{$index}}"
34                    data-ng-pattern="getValidationPattern((schemaProperty.simpleType||schemaProperty.type))"
35                    data-ng-change="!parentFormObj['mapValue'+fieldsPrefixName+$index].$error.pattern && parseToCorrectType(valueObjRef, key, (schemaProperty.simpleType||schemaProperty.type))"
36                    data-ng-model-options="{ debounce: 200 }"
37                    data-ng-maxlength="maxLength"
38                    maxlength="{{maxLength}}"
39                    data-required
40                    autofocus />
41             <select class="i-sdc-form-select"
42                     data-tests-id="mapValue{{fieldsPrefixName}}{{$index}}"
43                     ng-if="(schemaProperty.simpleType||schemaProperty.type) == 'boolean'"
44                     data-ng-disabled="readOnly"
45                     name="mapValue{{fieldsPrefixName}}{{$index}}"
46                     data-ng-model="valueObjRef[mapKeys[$index]]"
47                     data-required>
48                 <option value="true">true</option>
49                 <option value="false">false</option>
50             </select>
51             <div class="input-error" data-ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$dirty && parentFormObj['mapValue'+fieldsPrefixName+$index].$invalid">
52                 <span ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Value' }"></span>
53                 <span ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$error.pattern" translate="PROPERTY_EDIT_PATTERN"></span>
54                 <span ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '{{maxLength}}' }"></span>
55             </div>
56         </div>
57         <div data-ng-if="isSchemaTypeDataType" class="i-sdc-form-item map-item-field">
58             <label class="i-sdc-form-label">Value</label>
59             <fields-structure value-obj-ref="valueObjRef[mapKeysStatic[$index]]"
60                               type-name="schemaProperty.type"
61                               parent-form-obj="parentFormObj"
62                               fields-prefix-name="'mapValue'+fieldsPrefixName+''+$index"
63                               read-only="readOnly"
64             ></fields-structure>
65         </div>
66         <span ng-click="deleteMapItem($index)" class="delete-map-item" data-tests-id="delete-map-item{{fieldsPrefixName}}{{$index}}" data-ng-class="{'disabled': readOnly}"></span>
67     </div>
68     <div class="add-map-item" data-ng-class="{'schema-data-type':isSchemaTypeDataType}">
69         <div class="add-btn" data-tests-id="add-map-item"
70              data-ng-class="{'disabled': readOnly || !schemaProperty.type || mapKeys.indexOf('')>-1 || !isMapKeysUnique}" data-ng-click="addMapItemFields()">Add</div>
71     </div>
72 </div>
73