diff --git a/src/plugins/timeline/TimelineViewLayout.vue b/src/plugins/timeline/TimelineViewLayout.vue index ce0d49107b..0b0fce7636 100644 --- a/src/plugins/timeline/TimelineViewLayout.vue +++ b/src/plugins/timeline/TimelineViewLayout.vue @@ -129,11 +129,22 @@ export default { ); // Drag resizer - Swimlane column width - const { x: swimLaneLabelWidth, mousedown } = useDragResizer({ initialX: 200 }); + const { x: swimLaneLabelWidth, mousedown } = useDragResizer({ + initialX: domainObject.configuration.swimLaneLabelWidth, + callback: mutateSwimLaneLabelWidth + }); provide('swimLaneLabelWidth', swimLaneLabelWidth); provide('mousedown', mousedown); + function mutateSwimLaneLabelWidth() { + openmct.objects.mutate( + domainObject, + 'configuration.swimLaneLabelWidth', + swimLaneLabelWidth.value + ); + } + // Flex containers - Swimlane height const timelineHolder = ref(null); diff --git a/src/plugins/timeline/configuration.js b/src/plugins/timeline/configuration.js new file mode 100644 index 0000000000..0128f990dd --- /dev/null +++ b/src/plugins/timeline/configuration.js @@ -0,0 +1,5 @@ +export const configuration = { + useIndependentTime: false, + containers: [], + swimLaneLabelWidth: 200 +}; diff --git a/src/plugins/timeline/plugin.js b/src/plugins/timeline/plugin.js index bf18e1c841..f0fd2294f7 100644 --- a/src/plugins/timeline/plugin.js +++ b/src/plugins/timeline/plugin.js @@ -20,6 +20,7 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ +import { configuration } from './configuration.js'; import ExtendedLinesBus from './ExtendedLinesBus.js'; import TimelineCompositionPolicy from './TimelineCompositionPolicy.js'; import timelineInterceptor from './timelineInterceptor.js'; @@ -40,10 +41,7 @@ export default function () { cssClass: 'icon-timeline', initialize: function (domainObject) { domainObject.composition = []; - domainObject.configuration = { - useIndependentTime: false, - containers: [] - }; + domainObject.configuration = configuration; } }); timelineInterceptor(openmct); diff --git a/src/plugins/timeline/timelineInterceptor.js b/src/plugins/timeline/timelineInterceptor.js index 3a59f5316f..d6a313b036 100644 --- a/src/plugins/timeline/timelineInterceptor.js +++ b/src/plugins/timeline/timelineInterceptor.js @@ -20,6 +20,8 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ +import { configuration } from './configuration.js'; + export default function timelineInterceptor(openmct) { openmct.objects.addGetInterceptor({ appliesTo: (identifier, domainObject) => { @@ -27,11 +29,15 @@ export default function timelineInterceptor(openmct) { }, invoke: (identifier, object) => { if (object && object.configuration === undefined) { - object.configuration = { - useIndependentTime: true - }; + object.configuration = configuration; } + Object.keys(configuration).forEach((key) => { + if (object.configuration[key] === undefined) { + object.configuration[key] = configuration[key]; + } + }); + return object; } });