From f4c2b79fdb20d2610aded401f2d890f09b85a7bb Mon Sep 17 00:00:00 2001 From: Khalid Adil Date: Thu, 10 Oct 2024 20:12:52 -0500 Subject: [PATCH] Update condition set metadata --- .../condition/ConditionSetMetadataProvider.js | 15 ++++++----- .../condition/components/ConditionItem.vue | 27 ++++++++++++++++--- 2 files changed, 31 insertions(+), 11 deletions(-) diff --git a/src/plugins/condition/ConditionSetMetadataProvider.js b/src/plugins/condition/ConditionSetMetadataProvider.js index 52d6d3ceb7..21e5c1bb02 100644 --- a/src/plugins/condition/ConditionSetMetadataProvider.js +++ b/src/plugins/condition/ConditionSetMetadataProvider.js @@ -43,11 +43,13 @@ export default class ConditionSetMetadataProvider { } getMetadata(domainObject) { - const enumerations = domainObject.configuration.conditionCollection.map((condition, index) => { - return { - string: condition.configuration.output, - value: index - }; + const format = { formatString: '%0.2f' }; + domainObject.configuration.conditionCollection.forEach((condition, index) => { + if (condition?.configuration?.valueMetadata?.enumerations) { + delete format.formatString; + format.format = 'enum'; + format.enumerations = condition?.configuration?.valueMetadata?.enumerations; + } }); const resultEnum = [ @@ -67,8 +69,7 @@ export default class ConditionSetMetadataProvider { key: 'value', source: 'output', name: 'Value', - format: 'enum', - enumerations: enumerations, + ...format, hints: { range: 1 } diff --git a/src/plugins/condition/components/ConditionItem.vue b/src/plugins/condition/components/ConditionItem.vue index c47969b3c4..9df75b7976 100644 --- a/src/plugins/condition/components/ConditionItem.vue +++ b/src/plugins/condition/components/ConditionItem.vue @@ -294,7 +294,8 @@ export default { criterionIndex: 0, draggingOver: false, isDefault: this.condition.isDefault, - telemetryMetadataOptions: {} + telemetryMetadataOptions: {}, + telemetryFormats: new Map() }; }, computed: { @@ -331,9 +332,10 @@ export default { watch: { condition: { handler() { - if (this.condition.configuration.output !== TELEMETRY_VALUE) { - this.condition.configuration.outputTelemetry = null; - this.condition.configuration.outputMetadata = null; + const config = this.condition?.configuration; + if (config?.output !== TELEMETRY_VALUE) { + config.outputTelemetry = null; + config.outputMetadata = null; } }, deep: true @@ -374,6 +376,16 @@ export default { this.persist(); }, + getOutputMetadata() { + const config = this.condition.configuration; + let valueMetadata; + if (config?.outputTelemetry && config?.outputMetadata) { + valueMetadata = this.telemetryFormats.get( + `${config?.outputTelemetry}_${config?.outputMetadata}` + ); + } + return valueMetadata; + }, addCriteria() { const criteriaObject = { id: uuid(), @@ -456,6 +468,10 @@ export default { this.persist(); }, persist() { + const valueMetadata = this.getOutputMetadata(); + if (valueMetadata) { + this.condition.configuration.valueMetadata = valueMetadata; + } this.$emit('update-condition', { condition: this.condition }); @@ -469,6 +485,9 @@ export default { let telemetryMetadata = this.openmct.telemetry.getMetadata(telemetryObject); if (telemetryMetadata) { this.telemetryMetadataOptions[id] = telemetryMetadata.values().slice(); + telemetryMetadata.values().forEach((telemetryValue) => { + this.telemetryFormats.set(`${id}_${telemetryValue.key}`, telemetryValue); + }); } else { this.telemetryMetadataOptions[id] = []; }