diff --git a/src/plugins/conditionWidget/components/ConditionWidget.vue b/src/plugins/conditionWidget/components/ConditionWidget.vue index ce985d7cab..1d07e629b8 100644 --- a/src/plugins/conditionWidget/components/ConditionWidget.vue +++ b/src/plugins/conditionWidget/components/ConditionWidget.vue @@ -79,13 +79,6 @@ export default { }, mounted() { if (this.domainObject) { - if (!this.domainObject.configuration) { - // older versions didn't initialize configuration - this.domainObject.configuration = { - objectStyles: {} - }; - } - this.listenToConditionSetChanges(); } }, diff --git a/src/plugins/conditionWidget/conditionWidgetInterceptor.js b/src/plugins/conditionWidget/conditionWidgetInterceptor.js new file mode 100644 index 0000000000..c7318982ea --- /dev/null +++ b/src/plugins/conditionWidget/conditionWidgetInterceptor.js @@ -0,0 +1,39 @@ +/***************************************************************************** + * Open MCT, Copyright (c) 2014-2024, United States Government + * as represented by the Administrator of the National Aeronautics and Space + * Administration. All rights reserved. + * + * Open MCT is licensed under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0. + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Open MCT includes source code licensed under additional open source + * licenses. See the Open Source Licenses file (LICENSES.md) included with + * this source code distribution or the Licensing information page available + * at runtime from the About dialog for additional information. + *****************************************************************************/ + +export default function conditionWidgetStylesInterceptor(openmct) { + return { + appliesTo: (identifier, domainObject) => { + return identifier.key === 'conditionWidget' && !domainObject.configuration?.objectStyles; + }, + invoke: (identifier, domainObject) => { + domainObject.configuration = { + objectStyles: {} + }; + + openmct.objects.save(domainObject); + + return domainObject; + }, + priority: openmct.priority.DEFAULT + }; +} diff --git a/src/plugins/conditionWidget/plugin.js b/src/plugins/conditionWidget/plugin.js index 182c8243a3..cca68d5972 100644 --- a/src/plugins/conditionWidget/plugin.js +++ b/src/plugins/conditionWidget/plugin.js @@ -20,11 +20,13 @@ * at runtime from the About dialog for additional information. *****************************************************************************/ +import conditionWidgetStylesInterceptor from './conditionWidgetInterceptor.js'; import ConditionWidgetViewProvider from './ConditionWidgetViewProvider.js'; export default function plugin() { return function install(openmct) { openmct.objectViews.addProvider(new ConditionWidgetViewProvider(openmct)); + openmct.objects.addGetInterceptor(conditionWidgetStylesInterceptor(openmct)); openmct.types.addType('conditionWidget', { key: 'conditionWidget',