summaryrefslogtreecommitdiffstats
path: root/catalog-ui/app/scripts/directives/property-types
diff options
context:
space:
mode:
Diffstat (limited to 'catalog-ui/app/scripts/directives/property-types')
-rw-r--r--catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html82
-rw-r--r--catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less90
-rw-r--r--catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts165
-rw-r--r--catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html57
-rw-r--r--catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less85
-rw-r--r--catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts130
-rw-r--r--catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html70
-rw-r--r--catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less83
-rw-r--r--catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts157
9 files changed, 0 insertions, 919 deletions
diff --git a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html b/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html
deleted file mode 100644
index b4583fd304..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<div class="data-type-fields-structure">
- <div class="open-close">
- <div class="open-close-button" data-ng-class="{'expand':expand,'collapse':!expand}" data-ng-click="expandAndCollapse()"></div>
- <span class="data-type-name">{{typeName.replace("org.openecomp.datatypes.heat.","")}}</span>
- </div>
- <div data-ng-show="expand" data-ng-repeat="property in dataTypeProperties" class="property">
- <div class="i-sdc-form-item property-name">
- <div tooltips tooltip-content="{{property.name}}">
- <input class="i-sdc-form-input"
- type="text"
- data-ng-disabled="true"
- value="{{property.name}}"/>
- </div>
- </div>
- <!--<div class="property-value">-->
- <div data-ng-if="dataTypesService.isDataTypeForDataTypePropertyType(property,types)" class="inner-structure">
- <fields-structure value-obj-ref="(valueObjRef[property.name])"
- type-name="property.type"
- parent-form-obj="parentFormObj"
- fields-prefix-name="fieldsPrefixName+property.name"
- read-only="readOnly"
- default-value="{{currentTypeDefaultValue[property.name]}}"
- types="types"></fields-structure>
- </div>
- <div data-ng-if="!dataTypesService.isDataTypeForDataTypePropertyType(property,types)" ng-switch="property.type">
- <div ng-switch-when="map">
- <type-map value-obj-ref="valueObjRef[property.name]"
- schema-property="property.schema.property"
- parent-form-obj="parentFormObj"
- fields-prefix-name="fieldsPrefixName+property.name"
- read-only="readOnly"
- default-value="{{currentTypeDefaultValue[property.name]}}"
- types="types"></type-map>
- </div>
- <div ng-switch-when="list">
- <type-list value-obj-ref="valueObjRef[property.name]"
- schema-property="property.schema.property"
- parent-form-obj="parentFormObj"
- fields-prefix-name="fieldsPrefixName+property.name"
- read-only="readOnly"
- default-value="{{currentTypeDefaultValue[property.name]}}"
- types="types"></type-list>
- </div>
- <div ng-switch-default class="primitive-value-field">
- <div class="i-sdc-form-item" data-ng-class="{error:(parentFormObj[fieldsPrefixName+property.name].$dirty && parentFormObj[fieldsPrefixName+property.name].$invalid)}">
- <input class="i-sdc-form-input"
- data-tests-id="{{fieldsPrefixName+property.name}}"
- ng-if="!((property.simpleType||property.type) == 'boolean')"
- data-ng-maxlength="100"
- data-ng-disabled="readOnly"
- maxlength="100"
- data-ng-model="valueObjRef[property.name]"
- type="text"
- name="{{fieldsPrefixName+property.name}}"
- data-ng-pattern="getValidationPattern((property.simpleType||property.type))"
- data-ng-model-options="{ debounce: 200 }"
- 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)))"
- autofocus />
- <select class="i-sdc-form-select"
- data-tests-id="{{fieldsPrefixName+property.name}}"
- ng-if="(property.simpleType||property.type) == 'boolean'"
- data-ng-disabled="readOnly"
- name="{{fieldsPrefixName+property.name}}"
- data-ng-change="onValueChange(property.name,'boolean')"
- data-ng-model="valueObjRef[property.name]"
- data-ng-options="option.v as option.n for option in [{ n: '', v: undefined }, { n: 'false', v: false }, { n: 'true', v: true }]">
- </select>
-
- <div class="input-error" data-ng-show="parentFormObj[fieldsPrefixName+property.name].$dirty && parentFormObj[fieldsPrefixName+property.name].$invalid">
- <span ng-show="parentFormObj[fieldsPrefixName+property.name].$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '100' }"></span>
- <span ng-show="parentFormObj[fieldsPrefixName+property.name].$error.pattern" translate="PROPERTY_EDIT_PATTERN"></span>
- <span ng-show="parentFormObj[fieldsPrefixName+property.name].$error.customValidation" translate="PROPERTY_EDIT_MAP_UNIQUE_KEYS"></span>
- </div>
- </div>
- </div>
- </div>
- <!--</div>-->
-
- </div>
-</div>
-
-
diff --git a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less b/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less
deleted file mode 100644
index 5c65fdc9dc..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.less
+++ /dev/null
@@ -1,90 +0,0 @@
-.data-type-fields-structure{
- background-color: @tlv_color_v;
- padding:10px;
- display: table-caption;
- .open-close{
- position: relative;
- .open-close-button{
- position: absolute;
- top: 50%;
- margin-top: -7px;
- &.expand{
- .sprite-new;
- .expand-collapse-minus-icon;
- }
- &.collapse{
- .sprite-new;
- .expand-collapse-plus-icon;
- }
- }
-
- }
-
-
- .data-type-name{
- .m_16_m;
- margin-left: 22px;
- }
-
- .i-sdc-form-input:disabled{
- .disabled;
- }
-
- .property{
- display: flex;
- min-width: 365px;
- min-height: 46px;
- input[type="text"],select{
- width: 170px;
- }
- .property-name{
- float: left;
- margin-top: 8px;
- }
- .primitive-value-field{
- float: right;
- margin-top: 8px;
- margin-left: 10px;
- }
- .inner-structure{
- display: -webkit-box;
- }
- }
-
- [ng-switch-when="map"]{
- margin-top: 8px;
- margin-left: 10px;
- .map-item{
- border: solid 1px @main_color_o;
- min-width: 401px;
- min-height: 69px;
- float: none !important;
- }
- .add-map-item{
- width: auto;
- float: none;
- &:nth-child(1){
- position: relative;
- top: 6px;
- }
- .add-btn{
- float: none;
- }
- }
-
- }
-
- [ng-switch-when="list"]{
- float: left;
- margin-top: 8px;
- margin-left: 10px;
- min-width: 280px;
- .dt-list-item {
- border: solid 1px @main_color_o;
- }
- .list-value-items{
- width:280px;
- }
- }
-}
-
diff --git a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts b/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts
deleted file mode 100644
index 94567ca36b..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts
+++ /dev/null
@@ -1,165 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-/**
- * Created by obarda on 1/27/2016.
- */
-/// <reference path="../../../references"/>
-module Sdc.Directives {
- 'use strict';
-
- export interface IDataTypeFieldsStructureScope extends ng.IScope {
- parentFormObj:ng.IFormController;
- dataTypeProperties:Array<Models.DataTypePropertyModel>;
- typeName:string;
- valueObjRef:any;
- propertyNameValidationPattern: RegExp;
- fieldsPrefixName:string;
- readOnly:boolean;
- currentTypeDefaultValue:any;
- types:Models.DataTypesMap;
- expandByDefault:boolean;
- expand:boolean;
- expanded:boolean;
- dataTypesService:Sdc.Services.DataTypesService;
-
- expandAndCollapse():void;
- getValidationPattern(type:string):RegExp;
- validateIntRange(value:string):boolean;
- onValueChange(propertyName:string, type:string):void
- }
-
-
- export class DataTypeFieldsStructureDirective implements ng.IDirective {
-
- constructor(private $templateCache:ng.ITemplateCacheService,
- private DataTypesService:Sdc.Services.DataTypesService,
- private PropertyNameValidationPattern: RegExp,
- private ValidationUtils:Sdc.Utils.ValidationUtils) {
- }
-
- scope = {
- valueObjRef: '=',
- typeName: '=',
- parentFormObj: '=',
- fieldsPrefixName: '=',
- readOnly: '=',
- defaultValue: '@',
- types: '=',
- expandByDefault: '='
- };
-
- restrict = 'E';
- replace = true;
- template = ():string => {
- return this.$templateCache.get('/app/scripts/directives/property-types/data-type-fields-structure/data-type-fields-structure.html');
- };
- public types=Utils.Constants.PROPERTY_DATA.TYPES;
-
- //get data type properties array and return object with the properties and their default value
- //(for example: get: [{name:"prop1",defaultValue:1 ...},{name:"prop2", defaultValue:"bla bla" ...}]
- // return: {prop1: 1, prop2: "bla bla"}
- private getDefaultValue = (dataTypeProperties:Array<Models.DataTypePropertyModel>):any => {
- let defaultValue = {};
- for(let i=0; i < dataTypeProperties.length; i++){
- if(dataTypeProperties[i].type!='string'){
- if(dataTypeProperties[i].defaultValue){
- defaultValue[dataTypeProperties[i].name] = JSON.parse(dataTypeProperties[i].defaultValue);
- }
- }else{
- defaultValue[dataTypeProperties[i].name] = dataTypeProperties[i].defaultValue;
- }
- }
- return defaultValue;
- };
-
- private initDataOnScope = (scope:any, $attr:any):void =>{
- scope.dataTypesService = this.DataTypesService;
- scope.dataTypeProperties = this.DataTypesService.getFirsLevelOfDataTypeProperties(scope.typeName,scope.types);
- if($attr.defaultValue){
- scope.currentTypeDefaultValue = JSON.parse($attr.defaultValue);
- }else{
- scope.currentTypeDefaultValue = this.getDefaultValue(scope.dataTypeProperties);
- }
-
- if(!scope.valueObjRef) {
- scope.valueObjRef = {};
- }
-
- _.forEach(scope.currentTypeDefaultValue, (value, key)=> {
- if(!scope.valueObjRef[key]){
- if(typeof scope.currentTypeDefaultValue[key] == 'object'){
- angular.copy(scope.currentTypeDefaultValue[key], scope.valueObjRef[key]);
- }else{
- scope.valueObjRef[key] = scope.currentTypeDefaultValue[key];
- }
- }
- });
- };
-
- private rerender = (scope:any):void =>{
- scope.expanded = false;
- scope.expand = false;
- if(scope.expandByDefault){
- scope.expandAndCollapse();
- }
- };
-
- link = (scope:IDataTypeFieldsStructureScope, element:any, $attr:any) => {
- scope.propertyNameValidationPattern = this.PropertyNameValidationPattern;
-
- scope.$watchCollection('[typeName,fieldsPrefixName]', (newData:any):void => {
- this.rerender(scope);
- });
-
-
- scope.expandAndCollapse = ():void => {
- if(!scope.expanded){
- this.initDataOnScope(scope,$attr);
- scope.expanded=true;
- }
- scope.expand=!scope.expand;
- };
-
- scope.getValidationPattern = (type:string):RegExp => {
- return this.ValidationUtils.getValidationPattern(type);
- };
-
- scope.validateIntRange = (value:string):boolean => {
- return !value || this.ValidationUtils.validateIntRange(value);
- };
-
- scope.onValueChange = (propertyName:string, type:string):void => {
- scope.valueObjRef[propertyName] = !angular.isUndefined(scope.valueObjRef[propertyName]) ? scope.valueObjRef[propertyName] : scope.currentTypeDefaultValue[propertyName];
- if(scope.valueObjRef[propertyName] && type != 'string'){
- scope.valueObjRef[propertyName] = JSON.parse(scope.valueObjRef[propertyName]);
- }
- };
- };
-
- public static factory = ($templateCache:ng.ITemplateCacheService,
- DataTypesService:Sdc.Services.DataTypesService,
- PropertyNameValidationPattern:RegExp,
- ValidationUtils:Sdc.Utils.ValidationUtils)=> {
- return new DataTypeFieldsStructureDirective($templateCache,DataTypesService,PropertyNameValidationPattern,ValidationUtils);
- };
- }
-
- DataTypeFieldsStructureDirective.factory.$inject = ['$templateCache','Sdc.Services.DataTypesService','PropertyNameValidationPattern','ValidationUtils'];
-}
diff --git a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html b/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html
deleted file mode 100644
index 410a24e62b..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<div>
- <div data-ng-if="!isSchemaTypeDataType">
- <div class="i-sdc-form-item list-new-item" data-ng-class="{error:(parentFormObj['listNewItem'+fieldsPrefixName].$dirty && parentFormObj['listNewItem'+fieldsPrefixName].$invalid)}">
- <input class="i-sdc-form-input"
- data-tests-id="listNewItem{{fieldsPrefixName}}"
- ng-if="!((schemaProperty.simpleType||schemaProperty.type) == 'boolean')"
- data-ng-disabled="readOnly"
- data-ng-model="listNewItem.value"
- type="text"
- name="listNewItem{{fieldsPrefixName}}"
- data-ng-pattern="getValidationPattern((schemaProperty.simpleType||schemaProperty.type))"
- data-ng-model-options="{ debounce: 200 }"
- placeholder="Type a value and then click ADD"
- data-ng-maxlength="maxLength"
- maxlength="{{maxLength}}"
- sdc-keyboard-events="" key-enter="schemaProperty.type && !parentFormObj['listNewItem'+fieldsPrefixName].$invalid && listNewItem.value && addListItem"
- autofocus />
- <select class="i-sdc-form-select"
- data-tests-id="listNewItem{{fieldsPrefixName}}"
- ng-if="(schemaProperty.simpleType||schemaProperty.type) == 'boolean'"
- data-ng-disabled="readOnly"
- name="listNewItem{{fieldsPrefixName}}"
- data-ng-model="listNewItem.value">
- <option value="true">true</option>
- <option value="false">false</option>
- </select>
- <div class="input-error" data-ng-show="parentFormObj['listNewItem'+fieldsPrefixName].$dirty && parentFormObj['listNewItem'+fieldsPrefixName].$invalid">
- <span ng-show="parentFormObj['listNewItem'+fieldsPrefixName].$error.pattern" translate="PROPERTY_EDIT_PATTERN"></span>
- <span ng-show="parentFormObj['listNewItem'+fieldsPrefixName].$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '{{maxLength}}' }"></span>
- </div>
- </div>
- <div class="add-btn add-list-item" data-tests-id="add-list-item{{fieldsPrefixName}}"
- data-ng-class="{'disabled': readOnly || !schemaProperty.type || parentFormObj['listNewItem'+fieldsPrefixName].$invalid || !listNewItem.value}" data-ng-click="addListItem()">Add</div>
- <div class="list-value-items">
- <span class="list-value-item" data-ng-repeat="value in valueObjRef track by $index">
- {{value}}
- <span class="delete-list-item sprite-new small-x-button" data-ng-click="deleteListItem($index)"></span>
- </span>
- </div>
- </div>
- <div data-ng-if="isSchemaTypeDataType">
- <div class="dt-list">
- <div data-ng-repeat="value in valueObjRef track by $index" class="dt-list-item">
- <span class="delete-dt-list-item" data-ng-click="deleteListItem($index)"></span>
- <fields-structure value-obj-ref="valueObjRef[$index]"
- type-name="schemaProperty.type"
- parent-form-obj="parentFormObj"
- fields-prefix-name="fieldsPrefixName+''+$index"
- read-only="readOnly"
- types="types"></fields-structure>
- </div>
- <div class="add-btn add-list-item" data-tests-id="add-list-item"
- data-ng-class="{'disabled': readOnly}" data-ng-click="listNewItem.value='{}';addListItem();">Add</div>
- </div>
-
- </div>
-</div>
diff --git a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less b/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less
deleted file mode 100644
index eb4214e135..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.less
+++ /dev/null
@@ -1,85 +0,0 @@
-.list-new-item{
- float: left;
- width: 50%;
- min-width: 221px;
- margin-right: 15px;
- input{
- min-width: 221px;
- }
-}
-
-.list-value-items{
- -webkit-border-radius: 2px;
- -moz-border-radius: 2px;
- border-radius: 2px;
- border: 1px solid @main_color_o;
- padding-bottom: 10px;
- min-height: 100px;
- clear: both;
- background-color: white;
- .list-value-item{
- display: inline-block;
- background-color: @tlv_color_v;
- margin: 10px 0 0 10px;
- padding-left: 8px;
- .delete-list-item{
- margin: 0 6px 0 10px;
- .hand;
- }
- }
-}
-
-.add-btn {
- .f-color.a;
- .f-type._14_m;
- .hand;
-
- &.add-list-item {
- float: left;
- margin-top: 5px;
- width: 44px;
- }
-
- &:before {
- .sprite-new;
- .plus-icon;
- margin-right: 5px;
- content: "";
-
- }
- &:hover {
- .f-color.b;
- &:before {
- .sprite-new;
- .plus-icon-hover;
- }
- }
-
-}
-
-.dt-list{
- display: table-caption;
- .dt-list-item {
- border-radius: 3px;
- background-color: @tlv_color_v;
- display: inline-block;
- .delete-dt-list-item{
- float: right;
- position: relative;
- top: 5px;
- right: 5px;
- .sprite-new;
- .delete-icon;
- &:hover{
- .delete-icon-hover;
- }
- }
- .data-type-name{
- margin-right: 16px;
- }
- }
- &>.add-list-item{
- float:none;
- }
-}
-
diff --git a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts b/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts
deleted file mode 100644
index ce5ee1ffa6..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/type-list/type-list-directive.ts
+++ /dev/null
@@ -1,130 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-/**
- * Created by rcohen on 9/15/2016.
- */
-/// <reference path="../../../references"/>
-module Sdc.Directives {
- 'use strict';
- /// import Model = go.Model;
-
- export interface ITypeListScope extends ng.IScope {
- parentFormObj:ng.IFormController;
- schemaProperty:Models.SchemaProperty;
- isSchemaTypeDataType:boolean;
- valueObjRef:any;
- propertyNameValidationPattern: RegExp;
- fieldsPrefixName:string;
- readOnly:boolean;
- listDefaultValue:any;
- types:Models.DataTypesMap;
- listNewItem:any;
- maxLength:number;
-
- getValidationPattern(type:string):RegExp;
- validateIntRange(value:string):boolean;
- addListItem():void;
- deleteListItem(listItemIndex:number):void
- }
-
-
- export class TypeListDirective implements ng.IDirective {
-
- constructor(private $templateCache:ng.ITemplateCacheService,
- private DataTypesService:Sdc.Services.DataTypesService,
- private PropertyNameValidationPattern: RegExp,
- private ValidationUtils:Sdc.Utils.ValidationUtils) {
- }
-
- scope = {
- valueObjRef: '=',//ref to list object in the parent value object
- schemaProperty: '=',//get the schema.property object
- parentFormObj: '=',//ref to parent form (get angular form object)
- fieldsPrefixName: '=',//prefix for form fields names
- readOnly: '=',//is form read only
- defaultValue: '@',//this list default value
- types: '=',//data types list
- maxLength: '='
- };
-
- restrict = 'E';
- replace = true;
- template = ():string => {
- return this.$templateCache.get('/app/scripts/directives/property-types/type-list/type-list-directive.html');
- };
-
- link = (scope:ITypeListScope, element:any, $attr:any) => {
- scope.propertyNameValidationPattern = this.PropertyNameValidationPattern;
-
- //reset valueObjRef when schema type is changed
- scope.$watchCollection('schemaProperty.type', (newData:any):void => {
- scope.isSchemaTypeDataType = this.DataTypesService.isDataTypeForSchemaType(scope.schemaProperty,scope.types);
- //insert 1 empty item dt by default
- if(scope.isSchemaTypeDataType && (!scope.valueObjRef||!scope.valueObjRef.length)){
- scope.valueObjRef = scope.valueObjRef ||[];
- scope.valueObjRef.push({});
- }
- });
-
- //when user brows between properties in "edit property form"
- scope.$watchCollection('fieldsPrefixName', (newData:any):void => {
- scope.listNewItem={value:''};
-
- if($attr.defaultValue){
- scope.listDefaultValue = JSON.parse($attr.defaultValue);
- }
- });
-
- scope.getValidationPattern = (type:string):RegExp => {
- return this.ValidationUtils.getValidationPattern(type);
- };
-
- scope.validateIntRange = (value:string):boolean => {
- return !value || this.ValidationUtils.validateIntRange(value);
- };
-
- scope.addListItem = ():void => {
- scope.valueObjRef = scope.valueObjRef ||[];
- let newVal = ((scope.schemaProperty.simpleType||scope.schemaProperty.type)==Utils.Constants.PROPERTY_TYPES.STRING?scope.listNewItem.value:JSON.parse(scope.listNewItem.value));
- scope.valueObjRef.push(newVal);
- scope.listNewItem.value = "";
- };
-
- scope.deleteListItem = (listItemIndex:number):void => {
- scope.valueObjRef.splice(listItemIndex,1);
- if (!scope.valueObjRef.length) {
- if (scope.listDefaultValue ) {
- angular.copy(scope.listDefaultValue, scope.valueObjRef);
- }
- }
- };
- };
-
- public static factory = ($templateCache:ng.ITemplateCacheService,
- DataTypesService:Sdc.Services.DataTypesService,
- PropertyNameValidationPattern:RegExp,
- ValidationUtils:Sdc.Utils.ValidationUtils)=> {
- return new TypeListDirective($templateCache,DataTypesService,PropertyNameValidationPattern,ValidationUtils);
- };
- }
-
- TypeListDirective.factory.$inject = ['$templateCache','Sdc.Services.DataTypesService','PropertyNameValidationPattern','ValidationUtils'];
-}
-
diff --git a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html b/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html
deleted file mode 100644
index ed82b840dc..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<div>
- <div data-ng-repeat="i in getNumber(mapKeys.length) track by $index" class="map-item" data-ng-class="{'primitive-value-map':!isSchemaTypeDataType}">
- <div class="i-sdc-form-item map-item-field" data-ng-class="{error:(parentFormObj['mapKey'+fieldsPrefixName+$index].$dirty && parentFormObj['mapKey'+fieldsPrefixName+$index].$invalid)}">
- <label class="i-sdc-form-label required">Key</label>
- <input class="i-sdc-form-input"
- data-tests-id="mapKey{{fieldsPrefixName}}{{$index}}"
- data-ng-model="mapKeys[$index]"
- type="text"
- name="mapKey{{fieldsPrefixName}}{{$index}}"
- data-ng-pattern="propertyNameValidationPattern"
- data-ng-model-options="{ debounce: 200 }"
- data-ng-change="changeKeyOfMap(mapKeys[$index], $index,'mapKey'+fieldsPrefixName+$index);$event.stopPropagation();"
- data-ng-disabled="readOnly"
- data-required
- autofocus/>
- <div class="input-error" data-ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$dirty && parentFormObj['mapKey'+fieldsPrefixName+$index].$invalid">
- <span ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$error.keyExist" translate="PROPERTY_EDIT_MAP_UNIQUE_KEYS"></span>
- <span ng-show="parentFormObj['mapKey'+fieldsPrefixName+$index].$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Key' }"></span>
- </div>
- </div>
- <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)}">
- <label class="i-sdc-form-label required">Value</label>
- <input class="i-sdc-form-input"
- ng-if="!((schemaProperty.simpleType||schemaProperty.type) == 'boolean')"
- data-ng-disabled="readOnly"
- data-ng-model="valueObjRef[mapKeys[$index]]"
- type="text"
- name="mapValue{{fieldsPrefixName}}{{$index}}"
- data-tests-id="mapValue{{fieldsPrefixName}}{{$index}}"
- data-ng-pattern="getValidationPattern((schemaProperty.simpleType||schemaProperty.type))"
- data-ng-change="!parentFormObj['mapValue'+fieldsPrefixName+$index].$error.pattern && parseToCorrectType(valueObjRef, key, (schemaProperty.simpleType||schemaProperty.type))"
- data-ng-model-options="{ debounce: 200 }"
- data-ng-maxlength="maxLength"
- maxlength="{{maxLength}}"
- data-required
- autofocus />
- <select class="i-sdc-form-select"
- data-tests-id="mapValue{{fieldsPrefixName}}{{$index}}"
- ng-if="(schemaProperty.simpleType||schemaProperty.type) == 'boolean'"
- data-ng-disabled="readOnly"
- name="mapValue{{fieldsPrefixName}}{{$index}}"
- data-ng-model="valueObjRef[mapKeys[$index]]"
- data-required>
- <option value="true">true</option>
- <option value="false">false</option>
- </select>
- <div class="input-error" data-ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$dirty && parentFormObj['mapValue'+fieldsPrefixName+$index].$invalid">
- <span ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$error.required" translate="VALIDATION_ERROR_REQUIRED" translate-values="{'field': 'Value' }"></span>
- <span ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$error.pattern" translate="PROPERTY_EDIT_PATTERN"></span>
- <span ng-show="parentFormObj['mapValue'+fieldsPrefixName+$index].$error.maxlength" translate="VALIDATION_ERROR_MAX_LENGTH" translate-values="{'max': '{{maxLength}}' }"></span>
- </div>
- </div>
- <div data-ng-if="isSchemaTypeDataType" class="i-sdc-form-item map-item-field">
- <label class="i-sdc-form-label">Value</label>
- <fields-structure value-obj-ref="valueObjRef[mapKeys[$index]]"
- type-name="schemaProperty.type"
- parent-form-obj="parentFormObj"
- fields-prefix-name="'mapValue'+fieldsPrefixName+''+$index"
- read-only="readOnly"
- types="types"
- ></fields-structure>
- </div>
- <span ng-click="deleteMapItem($index)" class="delete-map-item" data-tests-id="delete-map-item{{fieldsPrefixName}}{{$index}}" data-ng-class="{'disabled': readOnly}"></span>
- </div>
- <div class="add-map-item" data-ng-class="{'schema-data-type':isSchemaTypeDataType}">
- <div class="add-btn" data-tests-id="add-map-item"
- data-ng-class="{'disabled': readOnly || !schemaProperty.type || mapKeys.indexOf('')>-1}" data-ng-click="addMapItemFields()">Add</div>
- </div>
-</div>
-
diff --git a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less b/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less
deleted file mode 100644
index 2480b626f2..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.less
+++ /dev/null
@@ -1,83 +0,0 @@
-.add-map-item{
- &:nth-child(odd){
- float: right;
- }
- &:nth-child(1){
- float: none;
- .add-btn{
- float: none;
- }
- }
- width: 400px;
- .add-btn{
- width: 44px;
- float: right;
- }
- &.schema-data-type{
- float:none;
- .add-btn{
- float: none;
- }
- }
-}
-
-.add-btn {
- .f-color.a;
- .f-type._14_m;
- .hand;
-
- &:before {
- .sprite-new;
- .plus-icon;
- margin-right: 5px;
- content: "";
-
- }
- &:hover {
- .f-color.b;
- &:before {
- .sprite-new;
- .plus-icon-hover;
- }
- }
-
-}
-
-.map-item{
- min-width: 389px;
- min-height: 65px;
- background-color: @tlv_color_v;
- border-radius: 3px;
- margin-bottom: 8px;
- float: left;
- display: flex;
- &:nth-child(even).primitive-value-map{
- float: right;
- }
- .delete-map-item {
- float: right;
- position: relative;
- top: 5px;
- right: 5px;
- .sprite-new;
- .delete-icon;
- &:hover{
- .delete-icon-hover;
- }
- }
- .map-item-field {
- margin: 7px 12px !important;
- float: left;
- min-width: 170px;
- min-height: 50px;
- select{
- width:171px;
- }
- input[type="text"]{
- width: 170px;
- }
- &>.data-type-fields-structure{
- padding: 0;
- }
- }
-}
diff --git a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts b/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts
deleted file mode 100644
index d94ccf3886..0000000000
--- a/catalog-ui/app/scripts/directives/property-types/type-map/type-map-directive.ts
+++ /dev/null
@@ -1,157 +0,0 @@
-/*-
- * ============LICENSE_START=======================================================
- * SDC
- * ================================================================================
- * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
- * ================================================================================
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ============LICENSE_END=========================================================
- */
-/**
- * Created by rcohen on 9/15/2016.
- */
-/// <reference path="../../../references"/>
-module Sdc.Directives {
- 'use strict';
-
- export interface ITypeMapScope extends ng.IScope {
- parentFormObj:ng.IFormController;
- schemaProperty:Models.SchemaProperty;
- isSchemaTypeDataType:boolean;
- valueObjRef:any;
- mapKeys:Array<string>;//array of map keys
- propertyNameValidationPattern: RegExp;
- fieldsPrefixName:string;
- readOnly:boolean;
- mapDefaultValue:any;
- types:Models.DataTypesMap;
- maxLength:number;
-
- getValidationPattern(type:string):RegExp;
- validateIntRange(value:string):boolean;
- changeKeyOfMap(newKey:string, index:number, fieldName:string):void;
- deleteMapItem(index:number):void;
- addMapItemFields():void;
- parseToCorrectType(objectOfValues:any, locationInObj:string, type:string):void;
- getNumber(num:number):Array<any>;
- }
-
-
- export class TypeMapDirective implements ng.IDirective {
-
- constructor(private $templateCache:ng.ITemplateCacheService,
- private DataTypesService:Sdc.Services.DataTypesService,
- private PropertyNameValidationPattern: RegExp,
- private ValidationUtils:Sdc.Utils.ValidationUtils,
- private $timeout: ng.ITimeoutService) {
- }
-
- scope = {
- valueObjRef: '=',//ref to map object in the parent value object
- schemaProperty: '=',//get the schema.property object
- parentFormObj: '=',//ref to parent form (get angular form object)
- fieldsPrefixName: '=',//prefix for form fields names
- readOnly: '=',//is form read only
- defaultValue: '@',//this map default value
- types: '=',//data types list
- maxLength: '='
- };
-
- restrict = 'E';
- replace = true;
- template = ():string => {
- return this.$templateCache.get('/app/scripts/directives/property-types/type-map/type-map-directive.html');
- };
-
- link = (scope:ITypeMapScope, element:any, $attr:any) => {
- scope.propertyNameValidationPattern = this.PropertyNameValidationPattern;
-
- //reset valueObjRef and mapKeys when schema type is changed
- scope.$watchCollection('schemaProperty.type', (newData:any):void => {
- scope.isSchemaTypeDataType = this.DataTypesService.isDataTypeForSchemaType(scope.schemaProperty,scope.types);
- if(scope.valueObjRef){
- scope.mapKeys = Object.keys(scope.valueObjRef);
- }
- });
-
- //when user brows between properties in "edit property form"
- scope.$watchCollection('fieldsPrefixName', (newData:any):void => {
- if(!scope.valueObjRef) {
- scope.valueObjRef={};
- }
- scope.mapKeys = Object.keys(scope.valueObjRef);
-
- if($attr.defaultValue){
- scope.mapDefaultValue = JSON.parse($attr.defaultValue);
- }
- });
-
- //return dummy array in order to prevent rendering map-keys ng-repeat again when a map key is changed
- scope.getNumber = (num:number):Array<any> => {
- return new Array(num);
- };
-
- scope.getValidationPattern = (type:string):RegExp => {
- return this.ValidationUtils.getValidationPattern(type);
- };
-
- scope.validateIntRange = (value:string):boolean => {
- return !value || this.ValidationUtils.validateIntRange(value);
- };
-
- scope.changeKeyOfMap = (newKey:string, index:number, fieldName:string) : void => {
- let oldKey = Object.keys(scope.valueObjRef)[index];
- if(Object.keys(scope.valueObjRef).indexOf(newKey)>-1){
- scope.parentFormObj[fieldName].$setValidity('keyExist', false);
- }else{
- scope.parentFormObj[fieldName].$setValidity('keyExist', true);
- if(!scope.parentFormObj[fieldName].$invalid){
- angular.copy(JSON.parse(JSON.stringify(scope.valueObjRef).replace('"'+oldKey+'":', '"'+newKey+'":')),scope.valueObjRef);//update key
- }
- }
- };
-
- scope.deleteMapItem=(index:number):void=>{
- delete scope.valueObjRef[scope.mapKeys[index]];
- scope.mapKeys.splice(index,1);
- if (!scope.mapKeys.length) {//only when user removes all pairs of key-value fields - put the default
- if ( scope.mapDefaultValue ) {
- angular.copy(scope.mapDefaultValue, scope.valueObjRef);
- scope.mapKeys = Object.keys(scope.valueObjRef);
- }
- }
- };
-
- scope.addMapItemFields = ():void => {
- scope.valueObjRef['']= null;
- scope.mapKeys = Object.keys(scope.valueObjRef);
- };
-
- scope.parseToCorrectType = (objectOfValues:any, locationInObj:string, type:string):void => {
- if(objectOfValues[locationInObj] && type != Utils.Constants.PROPERTY_TYPES.STRING){
- objectOfValues[locationInObj] = JSON.parse(objectOfValues[locationInObj]);
- }
- }
- };
-
- public static factory = ($templateCache:ng.ITemplateCacheService,
- DataTypesService:Sdc.Services.DataTypesService,
- PropertyNameValidationPattern:RegExp,
- ValidationUtils:Sdc.Utils.ValidationUtils,
- $timeout: ng.ITimeoutService)=> {
- return new TypeMapDirective($templateCache,DataTypesService,PropertyNameValidationPattern,ValidationUtils,$timeout);
- };
- }
-
- TypeMapDirective.factory.$inject = ['$templateCache','Sdc.Services.DataTypesService','PropertyNameValidationPattern','ValidationUtils','$timeout'];
-}