diff --git a/src/plugins/LADTable/components/LADRow.vue b/src/plugins/LADTable/components/LADRow.vue index 39e8092ebb..cc7a0da9d0 100644 --- a/src/plugins/LADTable/components/LADRow.vue +++ b/src/plugins/LADTable/components/LADRow.vue @@ -32,6 +32,12 @@ class="js-third-data" :class="valueClass" >{{ value }} + + {{ unit }} + @@ -48,6 +54,10 @@ export default { domainObject: { type: Object, required: true + }, + hasUnits: { + type: Boolean, + requred: true } }, data() { @@ -59,7 +69,8 @@ export default { timestamp: undefined, value: '---', valueClass: '', - currentObjectPath + currentObjectPath, + unit: '' } }, computed: { @@ -101,6 +112,10 @@ export default { .subscribe(this.domainObject, this.updateValues); this.requestHistory(); + + if(this.hasUnits) { + this.setUnit(); + } }, destroyed() { this.stopWatchingMutation(); @@ -185,6 +200,9 @@ export default { console.warn(`No formatter for ${this.timestampKey} time system for ${this.domainObject.name}.`); return false; } + }, + setUnit() { + this.unit = this.valueMetadata.unit || ''; } } } diff --git a/src/plugins/LADTable/components/LADTable.vue b/src/plugins/LADTable/components/LADTable.vue index f5d073be07..1d04692e48 100644 --- a/src/plugins/LADTable/components/LADTable.vue +++ b/src/plugins/LADTable/components/LADTable.vue @@ -28,6 +28,7 @@ Name Timestamp Value + Unit @@ -35,6 +36,7 @@ v-for="item in items" :key="item.key" :domain-object="item.domainObject" + :has-units="hasUnits" /> @@ -51,7 +53,8 @@ export default { }, data() { return { - items: [] + items: [], + hasUnits: false } }, mounted() { @@ -73,6 +76,9 @@ export default { item.key = this.openmct.objects.makeKeyString(domainObject.identifier); this.items.push(item); + if(!this.hasUnits) { + this.checkForUnits(domainObject); + } }, removeItem(identifier) { let index = this.items.findIndex(item => this.openmct.objects.makeKeyString(identifier) === item.key); @@ -84,6 +90,15 @@ export default { reorderPlan.forEach((reorderEvent) => { this.$set(this.items, reorderEvent.newIndex, oldItems[reorderEvent.oldIndex]); }); + }, + checkForUnits(domainObject) { + let metadata = this.openmct.telemetry.getMetadata(domainObject); + metadata.valueMetadatas.forEach((metadatum) => { + if(metadatum.unit) { + this.hasUnits = true; + return; + } + }); } } } diff --git a/src/plugins/LADTable/components/LadTableSet.vue b/src/plugins/LADTable/components/LadTableSet.vue index ff2bf349a4..56e1e1acb6 100644 --- a/src/plugins/LADTable/components/LadTableSet.vue +++ b/src/plugins/LADTable/components/LadTableSet.vue @@ -27,6 +27,7 @@ Name Timestamp Value + Unit @@ -45,6 +46,7 @@ v-for="secondary in secondaryTelemetryObjects[primary.key]" :key="secondary.key" :domain-object="secondary.domainObject" + :has-units="hasUnits" /> @@ -63,7 +65,8 @@ export default { return { primaryTelemetryObjects: [], secondaryTelemetryObjects: {}, - compositions: [] + compositions: [], + hasUnits: false } }, mounted() { @@ -108,6 +111,7 @@ export default { this.$set(this.secondaryTelemetryObjects, primary.key, undefined); this.primaryTelemetryObjects.splice(index,1); primary = undefined; + this.checkForUnits(); }, reorderPrimary(reorderPlan) { let oldComposition = this.primaryTelemetryObjects.slice(); @@ -125,6 +129,9 @@ export default { array.push(secondary); this.$set(this.secondaryTelemetryObjects, primary.key, array); + if(!this.hasUnits) { + this.checkForUnits(domainObject); + } } }, removeSecondary(primary) { @@ -135,7 +142,25 @@ export default { array.splice(index, 1); this.$set(this.secondaryTelemetryObjects, primary.key, array); + this.checkForUnits(); } + }, + checkForUnits() { + let hasUnits = false; + for(let telemetryObject in this.secondaryTelemetryObjects) { + if(this.secondaryTelemetryObjects[telemetryObject]) { + let objects = this.secondaryTelemetryObjects[telemetryObject]; + for(let current of objects) { + let metadata = this.openmct.telemetry.getMetadata(current.domainObject); + for(let metadatum of metadata.valueMetadatas) { + if(metadatum.unit) { + hasUnits = true; + } + }; + } + } + } + this.hasUnits = hasUnits; } } } diff --git a/src/plugins/displayLayout/DisplayLayoutToolbar.js b/src/plugins/displayLayout/DisplayLayoutToolbar.js index c07c58d26a..b1c4432c05 100644 --- a/src/plugins/displayLayout/DisplayLayoutToolbar.js +++ b/src/plugins/displayLayout/DisplayLayoutToolbar.js @@ -521,7 +521,6 @@ define(['lodash'], function (_) { applicableSelectedItems: applicableItems, contextMethod: 'toggleUnits', property: function (selectionPath) { - console.log('path', selectionPath, getPath(selectionPath) + '.showUnits'); return getPath(selectionPath) + '.showUnits'; }, options: [ diff --git a/src/plugins/telemetryTable/TelemetryTableUnitColumn.js b/src/plugins/telemetryTable/TelemetryTableUnitColumn.js index b98e8a35be..a26bdf85e7 100644 --- a/src/plugins/telemetryTable/TelemetryTableUnitColumn.js +++ b/src/plugins/telemetryTable/TelemetryTableUnitColumn.js @@ -29,12 +29,12 @@ define([ super(openmct, metadatum); this.isUnit = true; this.titleValue += ' Unit'; - this.formatter = { - format(datum) { - return metadatum.unit; + this.formatter = { + format: (datum) => { + return this.metadatum.unit; }, - parse(datum) { - return metadatum.unit; + parse: (datum) => { + return this.metadatum.unit; } }; } @@ -54,10 +54,6 @@ define([ getFormattedValue(telemetryDatum) { return this.formatter.format(telemetryDatum); } - - getParsedValue(telemetryDatum) { - return this.formatter.parse(telemetryDatum); - } } return TelemetryTableUnitColumn; diff --git a/src/plugins/telemetryTable/components/table-configuration.vue b/src/plugins/telemetryTable/components/table-configuration.vue index cffbda0750..f92c8a2b1c 100644 --- a/src/plugins/telemetryTable/components/table-configuration.vue +++ b/src/plugins/telemetryTable/components/table-configuration.vue @@ -69,6 +69,7 @@