X-Git-Url: https://osm.etsi.org/gitweb/?p=osm%2FUI.git;a=blobdiff_plain;f=skyquake%2Fplugins%2Fcomposer%2Fsrc%2Fsrc%2Flibraries%2Fmodel%2FDescriptorModelMetaProperty.js;h=6fe1112c36a2bda8795a97eaabb791f333acc434;hp=efd06c0ff833f5671853e6b7df63833b68f93723;hb=6620bca06b9874e68e8bc11ce28b7a6eeda5cc03;hpb=e29efc315df33d546237e270470916e26df391d6 diff --git a/skyquake/plugins/composer/src/src/libraries/model/DescriptorModelMetaProperty.js b/skyquake/plugins/composer/src/src/libraries/model/DescriptorModelMetaProperty.js index efd06c0ff..6fe1112c3 100644 --- a/skyquake/plugins/composer/src/src/libraries/model/DescriptorModelMetaProperty.js +++ b/skyquake/plugins/composer/src/src/libraries/model/DescriptorModelMetaProperty.js @@ -1,5 +1,5 @@ /* - * + * * Copyright 2016 RIFT.IO Inc * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -29,16 +29,24 @@ import changeCase from 'change-case' import InstanceCounter from './../InstanceCounter' import DescriptorModelFields from './DescriptorModelFields' import DescriptorTemplateFactory from './DescriptorTemplateFactory' +import utils from '../utils' export default { + isBoolean(property = {}) { + return (typeof(property['data-type']) == 'string') && (property['data-type'].toLowerCase() == 'boolean') + }, isLeaf(property = {}) { return /leaf|choice/.test(property.type); }, isList(property = {}) { - return /list|leaf-list/.test(property.type); + return /list|leaf_list/.test(property.type); }, isLeafList(property = {}) { - return property.type === 'leaf-list'; + return property.type === 'leaf_list'; + }, + isLeafRef(property = {}) { + const type = property['data-type'] || {}; + return type.hasOwnProperty('leafref'); }, isArray(property = {}) { // give '1' or '0..N' or '0..1' or '0..5' determine if represents an array @@ -58,10 +66,10 @@ export default { return /^1/.test(property.cardinality); }, isObject(property = {}) { - return !/^(leaf|leaf-list)$/.test(property.type); + return !/^(leaf|leaf_list)$/.test(property.type); }, isSimpleList(property = {}) { - return _.contains(DescriptorModelFields.simpleList, property.name); + return _.includes(DescriptorModelFields.simpleList, property.name); }, isPrimativeDataType(property = {}) { const Property = this; @@ -107,6 +115,55 @@ export default { return {name: enumName, value: enumValue, isSelected: String(enumValue) === String(value)}; }); }, + getLeafRef(property = {}, path, value, fullFieldKey, transientCatalogs, container) { + const leafRefPath = property['data-type']['leafref']['path']; + + const transientCatalogHash = {}; + + transientCatalogs.map((catalog) => { + transientCatalogHash[catalog.type + '-catalog'] = {}; + transientCatalogHash[catalog.type + '-catalog'][catalog.type] = catalog['descriptors']; + }); + + let leafRefPathValues = utils.resolveLeafRefPath(transientCatalogHash, leafRefPath, fullFieldKey, path, container); + + let leafRefObjects = []; + + leafRefPathValues && leafRefPathValues.map((leafRefPathValue) => { + leafRefObjects.push({ + name: leafRefPathValue, + value: leafRefPathValue, + isSelected: String(leafRefPathValue) === String(value) + }); + }); + + return leafRefObjects; + }, + + getConfigParamRef(property = {}, path, value, fullFieldKey, transientCatalogs, container, vnfdId) { + // const leafRefPath = property['data-type']['leafref']['path']; + const leafRefPath = "/vnfd:vnfd-catalog/vnfd:vnfd[vnfd:id = " + vnfdId + "]/vnfd:config-parameter/vnfd:config-parameter-source/vnfd:name" + const transientCatalogHash = {}; + + transientCatalogs.map((catalog) => { + transientCatalogHash[catalog.type + '-catalog'] = {}; + transientCatalogHash[catalog.type + '-catalog'][catalog.type] = catalog['descriptors']; + }); + + let leafRefPathValues = utils.resolveLeafRefPath(transientCatalogHash, leafRefPath, fullFieldKey, path, container); + + let leafRefObjects = []; + + leafRefPathValues && leafRefPathValues.map((leafRefPathValue) => { + leafRefObjects.push({ + name: leafRefPathValue, + value: leafRefPathValue, + isSelected: String(leafRefPathValue) === String(value) + }); + }); + + return leafRefObjects; + }, isGuid(property = {}) { const type = property['data-type']; if (typeof type === 'object' && type.leafref && type.leafref.path) { @@ -123,7 +180,7 @@ export default { if (uiState.name === 'name') { return changeCase.param(parentMeta.name) + '-' + InstanceCounter.count(parentMeta[':qualified-type']); } - if (_.isArray(parentMeta.key) && _.contains(parentMeta.key, uiState.name)) { + if (_.isArray(parentMeta.key) && _.includes(parentMeta.key, uiState.name)) { if (/uuid/.test(uiState['data-type'])) { return guid(); }