summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.html9
-rw-r--r--catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts11
-rw-r--r--catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts3
-rw-r--r--catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts11
-rw-r--r--catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html3
5 files changed, 31 insertions, 6 deletions
diff --git a/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.html b/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.html
index 792919172e..78aa7bc7f4 100644
--- a/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.html
+++ b/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.html
@@ -33,9 +33,12 @@
<div data-ng-if="dataTypesService.isDataTypeForDataTypePropertyType(property)" class="inner-structure">
<fields-structure value-obj-ref="(valueObjRef[property.name])"
type-name="property.type"
+ parent-property="parentProperty"
+ component-instance-map="componentInstanceMap"
parent-form-obj="parentFormObj"
fields-prefix-name="fieldsPrefixName+property.name"
read-only="readOnly"
+ is-service="isService"
default-value="{{currentTypeDefaultValue[property.name]}}">
</fields-structure>
@@ -44,19 +47,25 @@
<div ng-switch-when="map">
<type-map value-obj-ref="valueObjRef[property.name]"
schema-property="property.schema.property"
+ parent-property="property"
+ component-instance-map="componentInstanceMap"
parent-form-obj="parentFormObj"
fields-prefix-name="fieldsPrefixName+property.name"
read-only="readOnly"
default-value="{{currentTypeDefaultValue[property.name]}}"
+ is-service="isService"
types="types"></type-map>
</div>
<div ng-switch-when="list">
<type-list value-obj-ref="valueObjRef[property.name]"
schema-property="property.schema.property"
+ parent-property="parentProperty"
+ component-instance-map="componentInstanceMap"
parent-form-obj="parentFormObj"
fields-prefix-name="fieldsPrefixName+property.name"
read-only="readOnly"
default-value="{{currentTypeDefaultValue[property.name]}}"
+ is-service="isService"
types="types"></type-list>
</div>
<div ng-switch-default class="primitive-value-field">
diff --git a/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts b/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts
index 419ad2d9a6..30c7b06733 100644
--- a/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts
+++ b/catalog-ui/src/app/directives/property-types/data-type-fields-structure/data-type-fields-structure.ts
@@ -22,15 +22,18 @@
* Created by obarda on 1/27/2016.
*/
'use strict';
-import { DataTypesMap } from 'app/models';
+import { DataTypesMap, PropertyModel } from 'app/models';
import { DataTypePropertyModel } from 'app/models/data-type-properties';
import { DataTypesService } from 'app/services';
import { ValidationUtils } from 'app/utils';
+import {InstanceFeDetails} from "app/models/instance-fe-details";
import * as _ from 'lodash';
export interface IDataTypeFieldsStructureScope extends ng.IScope {
parentFormObj: ng.IFormController;
dataTypeProperties: DataTypePropertyModel[];
+ parentProperty:PropertyModel;
+ componentInstanceMap: Map<string, InstanceFeDetails>;
typeName: string;
valueObjRef: any;
propertyNameValidationPattern: RegExp;
@@ -43,6 +46,7 @@ export interface IDataTypeFieldsStructureScope extends ng.IScope {
expanded: boolean;
dataTypesService: DataTypesService;
constraints: string[];
+ isService:boolean;
expandAndCollapse(): void;
getValidationPattern(type: string): RegExp;
@@ -58,12 +62,15 @@ export class DataTypeFieldsStructureDirective implements ng.IDirective {
scope = {
valueObjRef: '=',
typeName: '=',
+ componentInstanceMap: '=',
+ parentProperty: '=',
parentFormObj: '=',
fieldsPrefixName: '=',
readOnly: '=',
defaultValue: '@',
types: '=',
- expandByDefault: '='
+ expandByDefault: '=',
+ isService: '='
};
restrict = 'E';
diff --git a/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts b/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
index b2d322be1c..40a29da5fb 100644
--- a/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
+++ b/catalog-ui/src/app/directives/property-types/type-list/type-list-directive.ts
@@ -123,7 +123,8 @@ export class TypeListDirective implements ng.IDirective {
link = (scope:ITypeListScope, element:any, $attr:any) => {
scope.propertyNameValidationPattern = this.PropertyNameValidationPattern;
scope.stringSchema = this.stringSchema;
- if (scope.valueObjRef.length == 0) {
+ if (scope.valueObjRef == null || scope.valueObjRef.length == 0) {
+ scope.valueObjRef = [];
scope.valueObjRef.push("");
}
scope.showToscaFunction = new Array(scope.valueObjRef.length);
diff --git a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts
index 7987ba26cf..cbbc2d98c0 100644
--- a/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts
+++ b/catalog-ui/src/app/ng2/pages/properties-assignment/tosca-function/tosca-get-function/tosca-get-function.component.ts
@@ -63,6 +63,7 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
dropdownValuesLabel: string;
dropDownErrorMsg: string;
indexListValues:Array<ToscaIndexObject>;
+ parentListTypeFlag : boolean;
private isInitialized: boolean = false;
private componentMetadata: ComponentMetadata;
@@ -77,6 +78,10 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
ngOnInit(): void {
this.componentMetadata = this.workspaceService.metadata;
this.indexListValues = [];
+ if (this.property != null) {
+ this.parentListTypeFlag = (this.property.type != PROPERTY_TYPES.LIST && (!this.isComplexType(this.property.type) || (this.isComplexType(this.property.type)
+ && this.property instanceof PropertyDeclareAPIModel && (<PropertyDeclareAPIModel> this.property).input instanceof DerivedFEProperty && this.property.input.type != PROPERTY_TYPES.LIST)));
+ }
this.formGroup.valueChanges.subscribe(() => {
this.formValidation();
});
@@ -452,8 +457,8 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
if (this.property.type === PROPERTY_TYPES.ANY) {
return true;
}
- let validPropertyType = (this.property.type != PROPERTY_TYPES.LIST && property.type === PROPERTY_TYPES.LIST) ? property.schema.property.type : property.type;
- if (this.property.type != PROPERTY_TYPES.LIST && property.type === PROPERTY_TYPES.LIST && this.isComplexType(validPropertyType)) {
+ let validPropertyType = (this.parentListTypeFlag && property.type === PROPERTY_TYPES.LIST) ? property.schema.property.type : property.type;
+ if (this.parentListTypeFlag && property.type === PROPERTY_TYPES.LIST && this.isComplexType(validPropertyType)) {
let returnFlag : boolean = false;
const dataTypeFound: DataTypeModel = this.dataTypeService.getDataTypeByModelAndTypeName(this.componentMetadata.model, validPropertyType);
if (dataTypeFound && dataTypeFound.properties) {
@@ -555,7 +560,7 @@ export class ToscaGetFunctionComponent implements OnInit, OnChanges {
this.indexListValues = [];
let subPropertyDropdownList : Array<PropertyDropdownValue> = [];
const selectedProperty: PropertyDropdownValue = this.selectedProperty.value;
- if (selectedProperty.isList) {
+ if (this.parentListTypeFlag && selectedProperty.isList) {
toscaIndexFlag = true;
if (selectedProperty.schemaType != null) {
nestedToscaFlag = true;
diff --git a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
index d0c3cc6f95..682c7a9b7c 100644
--- a/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
+++ b/catalog-ui/src/app/view-models/forms/property-forms/component-property-form/property-form-view.html
@@ -166,11 +166,14 @@
<div data-ng-if="isTypeDataType">
<fields-structure value-obj-ref="myValue"
type-name="editPropertyModel.property.type"
+ parent-property="editPropertyModel.property"
+ component-instance-map="componentInstanceMap"
parent-form-obj="forms.editForm"
fields-prefix-name="currentPropertyIndex"
read-only="editPropertyModel.property.readonly && !isPropertyValueOwner"
default-value="{{getDefaultValue()}}"
types="dataTypes"
+ is-service="!componentMetadata.isVfc"
expand-by-default="true"></fields-structure>
</div>