X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Fcomponents%2FEditDescriptorModelProperties.js;h=b3d8afb2bd5003cee44d154dec373365c625fa9f;hb=4448de0491e9fdd6424f460a9f646379998590bf;hp=a69f3bba2d4cc0a0fbaaaa5191238725321a5216;hpb=9a3d7a41e02a0e291afe24f849e29230df751751;p=osm%2FUI.git diff --git a/skyquake/plugins/composer/src/src/components/EditDescriptorModelProperties.js b/skyquake/plugins/composer/src/src/components/EditDescriptorModelProperties.js index a69f3bba2..b3d8afb2b 100644 --- a/skyquake/plugins/composer/src/src/components/EditDescriptorModelProperties.js +++ b/skyquake/plugins/composer/src/src/components/EditDescriptorModelProperties.js @@ -187,7 +187,7 @@ export default function EditDescriptorModelProperties(props) { const onFocus = onFocusPropertyFormInputElement.bind(container, property, path, value); const placeholder = changeCase.title(property.name); const className = ClassNames(property.name + '-input', {'-is-guid': isGuid}); - const fieldValue = value ? (value.constructor.name != "Object") ? value : '' : undefined; + const fieldValue = value ? (value.constructor.name != "Object") ? value : '' : (isNaN(value) ? undefined : value); if (isEnumeration) { const enumeration = Property.getEnumeration(property, value); const options = enumeration.map((d, i) => { @@ -371,7 +371,8 @@ export default function EditDescriptorModelProperties(props) { const cases = property.properties.map(d => { if (d.type === 'case') { - caseByNameMap[d.name] = d.properties[0]; + //Previous it was assumed that a case choice would have only one property. Now we pass on either the only item or the + caseByNameMap[d.name] = d.properties && (d.properties.length == 1 ? d.properties[0] : d.properties); return { optionName: d.name, optionTitle: d.description, @@ -424,7 +425,9 @@ export default function EditDescriptorModelProperties(props) { const hasProperties = _.isArray(valueProperty.properties) && valueProperty.properties.length; const isMissingDescriptorMeta = !hasProperties && !Property.isLeaf(valueProperty); //Some magic that prevents errors for arising - const valueResponse = valueProperty.properties.length ? valueProperty.properties.map((d, i) => { + const valueResponse = valueProperty.properties && valueProperty.properties.length ? valueProperty.properties.map(valuePropertyFn) : (!isMissingDescriptorMeta) ? build(container, valueProperty, path.concat(valueProperty.name), utils.resolvePath(container.model, path.concat(valueProperty.name).join('.')) || container.model[valueProperty.name]) : + valueProperty.map && valueProperty.map(valuePropertyFn); + function valuePropertyFn(d, i) { const childPath = path.concat(valueProperty.name, d.name); const childValue = utils.resolvePath(container.model, childPath.join('.')); return ( @@ -432,7 +435,7 @@ export default function EditDescriptorModelProperties(props) { {build(container, d, childPath, childValue, props)} ); - }) : (!isMissingDescriptorMeta) ? build(container, valueProperty, path.concat(valueProperty.name), utils.resolvePath(container.model, path.concat(valueProperty.name).join('.')) || container.model[valueProperty.name]) : null + } // end magic const onFocus = onFocusPropertyFormInputElement.bind(container, property, path, value);