From 2c0fec20d1e79ca5416374be2e1626416208dad1 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Mon, 21 Apr 2025 11:46:19 +0530 Subject: [PATCH] fix: mark data tab form dirty by watching field updates (cherry picked from commit da4d3032bec9c0cb7996d94601bdbf0a0e6c938d) --- .../src/components/Activities/DataFields.vue | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/Activities/DataFields.vue b/frontend/src/components/Activities/DataFields.vue index 25feb8e3..e73fb891 100644 --- a/frontend/src/components/Activities/DataFields.vue +++ b/frontend/src/components/Activities/DataFields.vue @@ -64,7 +64,7 @@ import LoadingIndicator from '@/components/Icons/LoadingIndicator.vue' import { createToast } from '@/utils' import { usersStore } from '@/stores/users' import { isMobileView } from '@/composables/settings' -import { ref } from 'vue' +import { ref, watch } from 'vue' const props = defineProps({ doctype: { @@ -114,4 +114,20 @@ const tabs = createResource({ function saveChanges() { data.save.submit() } + +watch( + () => data.doc, + (newValue, oldValue) => { + if (!oldValue) return + if (newValue && oldValue) { + const isDirty = + JSON.stringify(newValue) !== JSON.stringify(data.originalDoc) + data.isDirty = isDirty + if (isDirty) { + data.save.loading = false + } + } + }, + { deep: true }, +)