From 22e38c05b46b129a22b68ebb3cd08f2c2935ab0c Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Thu, 5 Jun 2025 18:55:28 +0530 Subject: [PATCH] refactor: render assignees from document.js reload assignees if lead_owner/deal_owner is changed (cherry picked from commit e214ce8bfbedfe93338ab04c2ee55259a60e9d8e) --- .../src/components/Activities/Activities.vue | 8 +++++++- .../src/components/Activities/DataFields.vue | 19 ++++++++++++++++++- frontend/src/components/SidePanelLayout.vue | 12 +++++++++--- frontend/src/pages/Deal.vue | 15 +++++++++++++-- frontend/src/pages/Lead.vue | 17 ++++++++++++++--- 5 files changed, 61 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/Activities/Activities.vue b/frontend/src/components/Activities/Activities.vue index 3842a6dc..29733580 100644 --- a/frontend/src/components/Activities/Activities.vue +++ b/frontend/src/components/Activities/Activities.vue @@ -365,7 +365,11 @@
- +
{ + if (JSON.stringify(updatedDoc[key]) !== JSON.stringify(oldDoc[key])) { + acc[key] = updatedDoc[key] + } + return acc + }, {}) + + document.save.submit(null, { + onSuccess: () => emit('afterSave', changes), + }) } watch( diff --git a/frontend/src/components/SidePanelLayout.vue b/frontend/src/components/SidePanelLayout.vue index 9b794af9..3fe8fd1a 100644 --- a/frontend/src/components/SidePanelLayout.vue +++ b/frontend/src/components/SidePanelLayout.vue @@ -417,13 +417,13 @@ const props = defineProps({ }, }) +const emit = defineEmits(['afterFieldChange', 'reload']) + const { getFormattedPercent, getFormattedFloat, getFormattedCurrency } = getMeta(props.doctype) const { isManager, getUser } = usersStore() -const emit = defineEmits(['reload']) - const showSidePanelModal = ref(false) let document = { doc: {} } @@ -493,7 +493,13 @@ async function fieldChange(value, df) { await triggerOnChange(df.fieldname) - document.save.submit() + document.save.submit(null, { + onSuccess: () => { + emit('afterFieldChange', { + [df.fieldname]: value, + }) + }, + }) } function parsedSection(section, editButtonAdded) { diff --git a/frontend/src/pages/Deal.vue b/frontend/src/pages/Deal.vue index 9d438146..dfc6b5c9 100644 --- a/frontend/src/pages/Deal.vue +++ b/frontend/src/pages/Deal.vue @@ -13,8 +13,8 @@ :actions="deal.data._customActions" /> @@ -134,6 +135,7 @@ doctype="CRM Deal" :docname="deal.data.name" @reload="sections.reload" + @afterFieldChange="reloadAssignees" > @@ -186,6 +187,7 @@ doctype="CRM Lead" :docname="lead.data.name" @reload="sections.reload" + @afterFieldChange="reloadAssignees" />
@@ -609,7 +611,10 @@ const existingOrganizationChecked = ref(false) const existingContact = ref('') const existingOrganization = ref('') -const { triggerConvertToDeal } = useDocument('CRM Lead', props.leadId) +const { triggerConvertToDeal, assignees, document } = useDocument( + 'CRM Lead', + props.leadId, +) async function convertToDeal() { if (existingContactChecked.value && !existingContact.value) { @@ -711,4 +716,10 @@ function openQuickEntryModal() { } showConvertToDealModal.value = false } + +function reloadAssignees(changes) { + if (changes?.hasOwnProperty('lead_owner')) { + assignees.reload() + } +}