Merge pull request #3130 from nasa/display-layout-fix-3128

[Display Layouts] Prevent duplicate from being added when composition 'add' is fired
This commit is contained in:
Jamie V 2020-07-06 11:36:25 -07:00 committed by GitHub
commit 9ceb3c5b1e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -457,16 +457,44 @@ export default {
this.objectViewMap = {};
this.layoutItems.forEach(this.trackItem);
},
addChild(child) {
let keyString = this.openmct.objects.makeKeyString(child.identifier);
if (this.isTelemetry(child)) {
if (!this.telemetryViewMap[keyString] && !this.objectViewMap[keyString]) {
this.addItem('telemetry-view', child);
isItemAlreadyTracked(child) {
let found = false,
keyString = this.openmct.objects.makeKeyString(child.identifier);
this.layoutItems.forEach(item => {
if (item.identifier) {
let itemKeyString = this.openmct.objects.makeKeyString(item.identifier);
if (itemKeyString === keyString) {
found = true;
return;
}
}
} else if (!this.objectViewMap[keyString]) {
this.addItem('subobject-view', child);
});
if (found) {
return true;
} else if (this.isTelemetry(child)) {
return this.telemetryViewMap[keyString] && this.objectViewMap[keyString];
} else {
return this.objectViewMap[keyString];
}
},
addChild(child) {
if (this.isItemAlreadyTracked(child)) {
return;
}
let type;
if (this.isTelemetry(child)) {
type = 'telemetry-view';
} else {
type = 'subobject-view';
}
this.addItem(type, child);
},
removeChild(identifier) {
let keyString = this.openmct.objects.makeKeyString(identifier);