diff --git a/src/plugins/charts/bar/BarGraphView.vue b/src/plugins/charts/bar/BarGraphView.vue index 0bc90e3ebb..07c24932d6 100644 --- a/src/plugins/charts/bar/BarGraphView.vue +++ b/src/plugins/charts/bar/BarGraphView.vue @@ -332,7 +332,11 @@ export default { this.domainObject.configuration.axes.xKey === undefined || this.domainObject.configuration.axes.yKey === undefined ) { - return; + const { xKey, yKey } = this.identifyAxesKeys(axisMetadata); + this.openmct.objects.mutate(this.domainObject, 'configuration.axes', { + xKey, + yKey + }); } let xValues = []; @@ -431,6 +435,30 @@ export default { subscribeToAll() { const telemetryObjects = Object.values(this.telemetryObjects); telemetryObjects.forEach(this.subscribeToObject); + }, + identifyAxesKeys(metadata) { + const { xAxisMetadata, yAxisMetadata } = metadata; + + let xKey; + let yKey; + + // If xAxisMetadata contains array values, use the first one for xKey + const arrayValues = xAxisMetadata.filter((metaDatum) => metaDatum.isArrayValue); + const nonArrayValues = xAxisMetadata.filter((metaDatum) => !metaDatum.isArrayValue); + + if (arrayValues.length > 0) { + xKey = arrayValues[0].key; + yKey = arrayValues.length > 1 ? arrayValues[1].key : yAxisMetadata.key; + } else if (nonArrayValues.length > 0) { + xKey = nonArrayValues[0].key; + yKey = 'none'; + } else { + // Fallback if no valid xKey or yKey is found + xKey = 'none'; + yKey = 'none'; + } + + return { xKey, yKey }; } } };