Update condition set metadata

This commit is contained in:
Khalid Adil 2024-10-10 20:12:52 -05:00
parent f239d4bb6d
commit f4c2b79fdb
2 changed files with 31 additions and 11 deletions

View File

@ -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
}

View File

@ -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] = [];
}