From 551364ad8c2a7bd5bdec635af53abc7ceb122b69 Mon Sep 17 00:00:00 2001 From: Jamie Vigliotta Date: Wed, 15 Jul 2020 14:45:03 -0700 Subject: [PATCH] fixing implementation for telemetry view items in display layout --- .../displayLayout/DisplayLayoutToolbar.js | 24 +++++++++++++++++-- .../components/TelemetryView.vue | 8 ++----- src/ui/toolbar/Toolbar.vue | 8 +------ 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/src/plugins/displayLayout/DisplayLayoutToolbar.js b/src/plugins/displayLayout/DisplayLayoutToolbar.js index b1c4432c05..16f7760c42 100644 --- a/src/plugins/displayLayout/DisplayLayoutToolbar.js +++ b/src/plugins/displayLayout/DisplayLayoutToolbar.js @@ -515,11 +515,14 @@ define(['lodash'], function (_) { function getToggleUnitsButton(selectedParent, selection) { let applicableItems = getAllOfType(selection, 'telemetry-view'); + applicableItems = unitsOnly(applicableItems); + if(!applicableItems.length) { + return; + } return { control: "toggle-button", domainObject: selectedParent, applicableSelectedItems: applicableItems, - contextMethod: 'toggleUnits', property: function (selectionPath) { return getPath(selectionPath) + '.showUnits'; }, @@ -538,6 +541,20 @@ define(['lodash'], function (_) { }; } + function unitsOnly(items) { + let results = items.filter((item) => { + let currentItem = item[0]; + let metadata = this.openmct.telemetry.getMetadata(currentItem.context.item); + let hasUnits = metadata + .valueMetadatas + .filter((metadatum) => metadatum.unit) + .length; + console.log('hasUnits', hasUnits); + return hasUnits > 0; + }); + return results; + } + function getViewSwitcherMenu(selectedParent, selectionPath, selection) { if (selection.length === 1) { let displayLayoutContext = selectionPath[1].context, @@ -683,7 +700,10 @@ define(['lodash'], function (_) { toolbar.viewSwitcher = [getViewSwitcherMenu(selectedParent, selectionPath, selectedObjects)]; } if (toolbar['unit-toggle'].length === 0) { - toolbar['unit-toggle'] = [getToggleUnitsButton(selectedParent, selectedObjects)]; + let toggleUnitsButton = getToggleUnitsButton(selectedParent, selectedObjects); + if(toggleUnitsButton) { + toolbar['unit-toggle'] = [toggleUnitsButton]; + } } } else if (layoutItem.type === 'text-view') { if (toolbar['text-style'].length === 0) { diff --git a/src/plugins/displayLayout/components/TelemetryView.vue b/src/plugins/displayLayout/components/TelemetryView.vue index 8045273b2a..4d05c87b1c 100644 --- a/src/plugins/displayLayout/components/TelemetryView.vue +++ b/src/plugins/displayLayout/components/TelemetryView.vue @@ -59,7 +59,7 @@
{{ telemetryValue }} {{ unit }} @@ -129,8 +129,7 @@ export default { datum: undefined, formats: undefined, domainObject: undefined, - currentObjectPath: undefined, - showUnits: true + currentObjectPath: undefined } }, computed: { @@ -279,9 +278,6 @@ export default { }, showContextMenu(event) { this.openmct.contextMenu._showContextMenuForObjectPath(this.currentObjectPath, event.x, event.y, CONTEXT_MENU_ACTIONS); - }, - toggleUnits(show) { - this.showUnits = show; } } } diff --git a/src/ui/toolbar/Toolbar.vue b/src/ui/toolbar/Toolbar.vue index 688f3eb067..5b27acff8b 100644 --- a/src/ui/toolbar/Toolbar.vue +++ b/src/ui/toolbar/Toolbar.vue @@ -231,13 +231,7 @@ export default { } }); } else { - if(item.contextMethod) { - let method = item.contextMethod; - item.applicableSelectedItems.forEach(selectionPath => { - this.mutateObject(item, value, selectionPath); - selectionPath[0].context[method](value); - }); - } else if (item.applicableSelectedItems) { + if (item.applicableSelectedItems) { item.applicableSelectedItems.forEach(selectionPath => { this.mutateObject(item, value, selectionPath); });