mirror of
https://github.com/nasa/openmct.git
synced 2025-06-05 09:00:49 +00:00
Merge release 1.8.4 into master (#4797)
* Update version number (#4759) * update copyright (#4775) * Observe changes to sub-objects in flexible layouts. (#4780) * Get child of flex layout as mutable if possible * Fix bug when no default notebook defined * Follow domain object changes for Independent time conductor (#4783) * Track if domain object changes when independent time conductor is in use. * fix typo when using fallback template (#4784) Co-authored-by: Scott Bell <scott@traclabs.com> Co-authored-by: Andrew Henry <akhenry@gmail.com>
This commit is contained in:
parent
a7df8bf168
commit
b27f24cc30
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -97,7 +97,14 @@ export default {
|
|||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
if (this.frame.domainObjectIdentifier) {
|
if (this.frame.domainObjectIdentifier) {
|
||||||
this.openmct.objects.get(this.frame.domainObjectIdentifier).then((object) => {
|
let domainObjectPromise;
|
||||||
|
if (this.openmct.objects.supportsMutation(this.frame.domainObjectIdentifier)) {
|
||||||
|
domainObjectPromise = this.openmct.objects.getMutable(this.frame.domainObjectIdentifier);
|
||||||
|
} else {
|
||||||
|
domainObjectPromise = this.openmct.objects.get(this.frame.domainObjectIdentifier);
|
||||||
|
}
|
||||||
|
|
||||||
|
domainObjectPromise.then((object) => {
|
||||||
this.setDomainObject(object);
|
this.setDomainObject(object);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -105,6 +112,10 @@ export default {
|
|||||||
this.dragGhost = document.getElementById('js-fl-drag-ghost');
|
this.dragGhost = document.getElementById('js-fl-drag-ghost');
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
|
if (this.domainObject.isMutable) {
|
||||||
|
this.openmct.objects.destroyMutable(this.domainObject);
|
||||||
|
}
|
||||||
|
|
||||||
if (this.unsubscribeSelection) {
|
if (this.unsubscribeSelection) {
|
||||||
this.unsubscribeSelection();
|
this.unsubscribeSelection();
|
||||||
}
|
}
|
||||||
|
@ -632,7 +632,8 @@ export default {
|
|||||||
updateDefaultNotebook(updatedNotebookStorageObject) {
|
updateDefaultNotebook(updatedNotebookStorageObject) {
|
||||||
if (!this.isDefaultNotebook()) {
|
if (!this.isDefaultNotebook()) {
|
||||||
const persistedNotebookStorageObject = getDefaultNotebook();
|
const persistedNotebookStorageObject = getDefaultNotebook();
|
||||||
if (persistedNotebookStorageObject.identifier !== undefined) {
|
if (persistedNotebookStorageObject
|
||||||
|
&& persistedNotebookStorageObject.identifier !== undefined) {
|
||||||
this.removeDefaultClass(persistedNotebookStorageObject.identifier);
|
this.removeDefaultClass(persistedNotebookStorageObject.identifier);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -278,7 +278,7 @@ export default {
|
|||||||
// Have to throw away the old canvas elements and replace with new
|
// Have to throw away the old canvas elements and replace with new
|
||||||
// canvas elements in order to get new drawing contexts.
|
// canvas elements in order to get new drawing contexts.
|
||||||
const div = document.createElement('div');
|
const div = document.createElement('div');
|
||||||
div.innerHTML = this.TEMPLATE;
|
div.innerHTML = this.canvasTemplate + this.canvasTemplate;
|
||||||
const mainCanvas = div.querySelectorAll("canvas")[1];
|
const mainCanvas = div.querySelectorAll("canvas")[1];
|
||||||
const overlayCanvas = div.querySelectorAll("canvas")[0];
|
const overlayCanvas = div.querySelectorAll("canvas")[0];
|
||||||
this.canvas.parentNode.replaceChild(mainCanvas, this.canvas);
|
this.canvas.parentNode.replaceChild(mainCanvas, this.canvas);
|
||||||
|
@ -95,6 +95,11 @@ export default {
|
|||||||
isUTCBased: timeSystem.isUTCBased
|
isUTCBased: timeSystem.isUTCBased
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
keyString() {
|
||||||
|
this.setTimeContext();
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.handleNewBounds = _.throttle(this.handleNewBounds, 300);
|
this.handleNewBounds = _.throttle(this.handleNewBounds, 300);
|
||||||
this.setTimeSystem(JSON.parse(JSON.stringify(this.openmct.time.timeSystem())));
|
this.setTimeSystem(JSON.parse(JSON.stringify(this.openmct.time.timeSystem())));
|
||||||
|
@ -115,6 +115,11 @@ export default {
|
|||||||
isUTCBased: timeSystem.isUTCBased
|
isUTCBased: timeSystem.isUTCBased
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
watch: {
|
||||||
|
keyString() {
|
||||||
|
this.setTimeContext();
|
||||||
|
}
|
||||||
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.handleNewBounds = _.throttle(this.handleNewBounds, 300);
|
this.handleNewBounds = _.throttle(this.handleNewBounds, 300);
|
||||||
this.setTimeSystem(JSON.parse(JSON.stringify(this.openmct.time.timeSystem())));
|
this.setTimeSystem(JSON.parse(JSON.stringify(this.openmct.time.timeSystem())));
|
||||||
|
@ -105,42 +105,49 @@ export default {
|
|||||||
watch: {
|
watch: {
|
||||||
domainObject: {
|
domainObject: {
|
||||||
handler(domainObject) {
|
handler(domainObject) {
|
||||||
this.independentTCEnabled = domainObject.configuration.useIndependentTime === true;
|
const key = this.openmct.objects.makeKeyString(domainObject.identifier);
|
||||||
|
if (key !== this.keyString) {
|
||||||
if (!domainObject.configuration.timeOptions || !this.independentTCEnabled) {
|
//domain object has changed
|
||||||
this.destroyIndependentTime();
|
this.destroyIndependentTime();
|
||||||
|
|
||||||
return;
|
this.independentTCEnabled = domainObject.configuration.useIndependentTime === true;
|
||||||
}
|
this.timeOptions = domainObject.configuration.timeOptions || {
|
||||||
|
clockOffsets: this.openmct.time.clockOffsets(),
|
||||||
|
fixedOffsets: this.openmct.time.bounds()
|
||||||
|
};
|
||||||
|
|
||||||
if (this.timeOptions.start !== domainObject.configuration.timeOptions.start
|
this.initialize();
|
||||||
|| this.timeOptions.end !== domainObject.configuration.timeOptions.end) {
|
|
||||||
this.timeOptions = domainObject.configuration.timeOptions;
|
|
||||||
this.destroyIndependentTime();
|
|
||||||
this.registerIndependentTimeOffsets();
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
deep: true
|
deep: true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
this.setTimeContext();
|
this.initialize();
|
||||||
|
|
||||||
if (this.timeOptions.mode) {
|
|
||||||
this.mode = this.timeOptions.mode;
|
|
||||||
} else {
|
|
||||||
this.timeOptions.mode = this.mode = this.timeContext.clock() === undefined ? { key: 'fixed' } : { key: Object.create(this.timeContext.clock()).key};
|
|
||||||
}
|
|
||||||
|
|
||||||
if (this.independentTCEnabled) {
|
|
||||||
this.registerIndependentTimeOffsets();
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
beforeDestroy() {
|
beforeDestroy() {
|
||||||
this.stopFollowingTimeContext();
|
this.stopFollowingTimeContext();
|
||||||
this.destroyIndependentTime();
|
this.destroyIndependentTime();
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
initialize() {
|
||||||
|
this.keyString = this.openmct.objects.makeKeyString(this.domainObject.identifier);
|
||||||
|
this.setTimeContext();
|
||||||
|
|
||||||
|
if (this.timeOptions.mode) {
|
||||||
|
this.mode = this.timeOptions.mode;
|
||||||
|
} else {
|
||||||
|
if (this.timeContext.clock() === undefined) {
|
||||||
|
this.timeOptions.mode = this.mode = { key: 'fixed' };
|
||||||
|
} else {
|
||||||
|
this.timeOptions.mode = this.mode = { key: Object.create(this.timeContext.clock()).key};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.independentTCEnabled) {
|
||||||
|
this.registerIndependentTimeOffsets();
|
||||||
|
}
|
||||||
|
},
|
||||||
toggleIndependentTC() {
|
toggleIndependentTC() {
|
||||||
this.independentTCEnabled = !this.independentTCEnabled;
|
this.independentTCEnabled = !this.independentTCEnabled;
|
||||||
if (this.independentTCEnabled) {
|
if (this.independentTCEnabled) {
|
||||||
@ -213,10 +220,9 @@ export default {
|
|||||||
offsets = this.timeOptions.clockOffsets;
|
offsets = this.timeOptions.clockOffsets;
|
||||||
}
|
}
|
||||||
|
|
||||||
const key = this.openmct.objects.makeKeyString(this.domainObject.identifier);
|
const timeContext = this.openmct.time.getIndependentContext(this.keyString);
|
||||||
const timeContext = this.openmct.time.getIndependentContext(key);
|
|
||||||
if (!timeContext.hasOwnContext()) {
|
if (!timeContext.hasOwnContext()) {
|
||||||
this.unregisterIndependentTime = this.openmct.time.addIndependentContext(key, offsets, this.isFixed ? undefined : this.mode.key);
|
this.unregisterIndependentTime = this.openmct.time.addIndependentContext(this.keyString, offsets, this.isFixed ? undefined : this.mode.key);
|
||||||
} else {
|
} else {
|
||||||
if (this.isFixed) {
|
if (this.isFixed) {
|
||||||
timeContext.stopClock();
|
timeContext.stopClock();
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<!--
|
<!--
|
||||||
Open MCT, Copyright (c) 2014-2021, United States Government
|
Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
as represented by the Administrator of the National Aeronautics and Space
|
as represented by the Administrator of the National Aeronautics and Space
|
||||||
Administration. All rights reserved.
|
Administration. All rights reserved.
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* Open MCT, Copyright (c) 2014-2021, United States Government
|
* Open MCT, Copyright (c) 2014-2022, United States Government
|
||||||
* as represented by the Administrator of the National Aeronautics and Space
|
* as represented by the Administrator of the National Aeronautics and Space
|
||||||
* Administration. All rights reserved.
|
* Administration. All rights reserved.
|
||||||
*
|
*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user