Remove duplicate metadata options

This commit is contained in:
Joshi 2020-03-27 15:22:50 -07:00
parent 5ec8ac95c1
commit f990a14a3c
4 changed files with 23 additions and 7 deletions

View File

@ -50,7 +50,8 @@ define([
values: [
{
key: "name",
name: "Name"
name: "Name",
format: "string"
},
{
key: "utc",

View File

@ -56,7 +56,8 @@ define([
valueMetadatas.push({
key: 'name',
name: 'Name'
name: 'Name',
format: 'string'
});
metadata.domains.forEach(function (domain, index) {

View File

@ -161,7 +161,7 @@ export default {
methods: {
checkTelemetry() {
if(this.criterion.telemetry) {
if (this.criterion.telemetry === 'any' && this.criterion.telemetry === 'all') {
if (this.criterion.telemetry === 'any' || this.criterion.telemetry === 'all') {
this.updateMetadataOptions();
} else {
if (!this.telemetry.find((telemetryObj) => this.openmct.objects.areIdsEqual(this.criterion.telemetry, telemetryObj.identifier))) {
@ -210,7 +210,7 @@ export default {
this.telemetryMetadataOptions = [];
telemetryObjects.forEach(telemetryObject => {
let telemetryMetadata = this.openmct.telemetry.getMetadata(telemetryObject);
this.telemetryMetadataOptions = this.telemetryMetadataOptions.concat(telemetryMetadata.values());
this.addMetaDataOptions(telemetryMetadata.values());
this.updateOperations(ev);
this.updateOperationInputVisibility();
});
@ -227,6 +227,19 @@ export default {
this.criterion.metadata = '';
}
},
addMetaDataOptions(options) {
if (!this.telemetryMetadataOptions) {
this.telemetryMetadataOptions = options;
}
options.forEach((option) => {
const found = this.telemetryMetadataOptions.find((metadataOption) => {
return (metadataOption.key && (metadataOption.key === option.key)) && (metadataOption.name && (metadataOption.name === option.name))
});
if (!found) {
this.telemetryMetadataOptions.push(option);
}
});
},
updateOperations(ev) {
if (ev && ev.target === this.$refs.telemetrySelect) {
this.clearDependentFields(ev.target);

View File

@ -43,14 +43,14 @@ export default class TelemetryCriterion extends EventEmitter {
this.id = telemetryDomainObjectDefinition.id;
this.telemetry = telemetryDomainObjectDefinition.telemetry;
this.operation = telemetryDomainObjectDefinition.operation;
this.telemetryObjects = telemetryDomainObjectDefinition.telemetryObjects;
this.telemetryObjects = Object.assign({}, telemetryDomainObjectDefinition.telemetryObjects);
this.input = telemetryDomainObjectDefinition.input;
this.metadata = telemetryDomainObjectDefinition.metadata;
this.telemetryDataCache = {};
}
updateTelemetry(telemetryObjects) {
this.telemetryObjects = telemetryObjects;
this.telemetryObjects = Object.assign({}, telemetryObjects);
}
formatData(data, telemetryObjects) {
@ -161,8 +161,9 @@ export default class TelemetryCriterion extends EventEmitter {
}
destroy() {
this.off(`subscription:${this.telemetryObjectIdAsString}`, this.handleSubscription);
this.emitEvent('criterionRemoved');
delete this.telemetryObjects;
delete this.telemetryDataCache;
delete this.telemetryObjectIdAsString;
delete this.telemetryObject;
}