diff --git a/adapter/0.2.7.json b/adapter/0.2.7.json new file mode 100644 index 00000000..05860993 --- /dev/null +++ b/adapter/0.2.7.json @@ -0,0 +1,59 @@ +/** + * Copyright © 2016-2024 by IntegrIT S.A. dba Hackolade. All rights reserved. + * + * The copyright to the computer software herein is the property of IntegrIT S.A. + * The software may be used and/or copied only with the written permission of + * IntegrIT S.A. or in accordance with the terms and conditions stipulated in + * the agreement/contract under which the software has been supplied. + * + * { + * "add": { + * "entity": [], + * "container": [], + * "model": [], + * "view": [], + * "field": { + * "": [] + * } + * }, + * "delete": { + * "entity": [], + * "container": [], + * "model": [], + * "view": [], + * "field": { + * "": [] + * } + * }, + * "modify": { + * "entity": [ + * { + * "from": { }, + * "to": { } + * } + * ], + * "container": [], + * "model": [], + * "view": [], + * "field": [] + * }, + * } + */ + +{ + "modify": { + "model": [ + [ + "populateByPropertySource", + { + "modify": { + "container": [["getNameFromDottedIdentifier", "tagName", "schemaTags"]], + "entity": [["getNameFromDottedIdentifier", "tagName", "tableTags"]], + "view": [["getNameFromDottedIdentifier", "tagName", "viewTags"]], + "field": [["getNameFromDottedIdentifier", "tagName", "columnTags"]] + } + } + ] + ] + } +} diff --git a/forward_engineering/helpers/tagHelper.js b/forward_engineering/helpers/tagHelper.js index fadf68ef..c6a853a8 100644 --- a/forward_engineering/helpers/tagHelper.js +++ b/forward_engineering/helpers/tagHelper.js @@ -39,7 +39,7 @@ module.exports = ({ getName, toString }) => { const getTagKeyValues = ({ tags, isCaseSensitive }) => { return tags .filter(tag => tag.tagName) - .map(tag => `${getTagName({ tagName: tag.tagName, isCaseSensitive })} = ${toString(tag.tagValue)}`) + .map(tag => `${getTagName({ tagName: tag.tagName, isCaseSensitive })} = ${toString(tag.tagValue || '')}`) .join(', '); }; diff --git a/properties_pane/container_level/containerLevelConfig.json b/properties_pane/container_level/containerLevelConfig.json index 290c1533..9a22a6ae 100644 --- a/properties_pane/container_level/containerLevelConfig.json +++ b/properties_pane/container_level/containerLevelConfig.json @@ -167,17 +167,105 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, diff --git a/properties_pane/entity_level/entityLevelConfig.json b/properties_pane/entity_level/entityLevelConfig.json index ec67a82d..631220e8 100644 --- a/properties_pane/entity_level/entityLevelConfig.json +++ b/properties_pane/entity_level/entityLevelConfig.json @@ -1025,17 +1025,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, diff --git a/properties_pane/field_level/fieldLevelConfig.json b/properties_pane/field_level/fieldLevelConfig.json index 0cd5df88..951767f0 100644 --- a/properties_pane/field_level/fieldLevelConfig.json +++ b/properties_pane/field_level/fieldLevelConfig.json @@ -510,17 +510,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -940,17 +1033,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -1352,17 +1538,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -1764,17 +2043,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -2176,17 +2548,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -2493,16 +2958,109 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", - "propertyType": "text", - "shouldValidate": true, - "validation": { - "regex": "^.{0,256}$" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, + "shouldValidate": true, + "validation": { + "regex": "^.{0,256}$" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] } } ] @@ -2823,17 +3381,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -3145,17 +3796,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -3476,17 +4220,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -3815,17 +4652,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -4154,17 +5084,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -4493,17 +5516,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -4914,17 +6030,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -5247,17 +6456,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }, @@ -5336,17 +6638,110 @@ making sure that you maintain a proper JSON format. "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] } diff --git a/properties_pane/view_level/viewLevelConfig.json b/properties_pane/view_level/viewLevelConfig.json index dfdab135..8a1dc763 100644 --- a/properties_pane/view_level/viewLevelConfig.json +++ b/properties_pane/view_level/viewLevelConfig.json @@ -96,17 +96,110 @@ "propertyName": "Tag name", "propertyKeyword": "tagName", "propertyTooltip": "", - "propertyType": "text" + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.*.name" + } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "selecthashed", + "withEmptyOption": true, + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + } + ] + }, + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } }, { "propertyName": "Value", "propertyKeyword": "tagValue", "propertyTooltip": "", "propertyType": "text", + "propertySource": { + "level": "container", + "source": "tags.${tagName}.allowedValues.*.value" + }, + "dependency": { + "type": "and", + "values": [ + { + "key": "tagName", + "pattern": "^.+$" + }, + { + "type": "or", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "isEmpty": true + }, + { + "type": "not", + "values": [ + { + "level": "container", + "source": "tags.${tagName}", + "key": "allowedValues", + "exist": true + } + ] + } + ] + } + ] + }, "shouldValidate": true, "validation": { "regex": "^.{0,256}$" } + }, + { + "propertyName": "Value", + "propertyKeyword": "tagValue", + "propertyTooltip": "", + "propertyType": "select", + "disabled": true, + "dependency": { + "type": "or", + "values": [ + { + "key": "tagName", + "exist": false + }, + { + "key": "tagName", + "pattern": "^$" + } + ] + } } ] }