From d78e6d94703ef806b9d4d5c49cd7f1a3f6cd09d6 Mon Sep 17 00:00:00 2001 From: Florian Hotze Date: Tue, 1 Oct 2024 11:19:48 +0200 Subject: [PATCH] Thing details: Fix config action saves the whole Thing (#2775) A Thing config action is only supposed to save the config of the Thing, not the whole Thing. Fixes https://github.com/openhab/openhab-core/issues/4380. Signed-off-by: Florian Hotze --- .../web/src/pages/settings/things/thing-details.vue | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/bundles/org.openhab.ui/web/src/pages/settings/things/thing-details.vue b/bundles/org.openhab.ui/web/src/pages/settings/things/thing-details.vue index a32ba341c7..877bb19e1f 100644 --- a/bundles/org.openhab.ui/web/src/pages/settings/things/thing-details.vue +++ b/bundles/org.openhab.ui/web/src/pages/settings/things/thing-details.vue @@ -547,8 +547,6 @@ export default { }) }, doConfigAction (action) { - let thing = this.thing - let save = this.save if (action.type !== 'BOOLEAN') { console.warn('Invalid action type', action) return @@ -564,8 +562,15 @@ export default { prompt, this.thing.label, () => { - thing.configuration[action.name] = true - save() + const name = action.name + // Make sure Vue reactivity notices the change + this.$set(this.thing, 'configuration', ({ + name: true, + ...this.thing.configuration + })) + // Vue reactivity is too slow to recognize config change before the API call, manually mark the config dirty + this.configDirty = true + this.save() } ) },