refactor: statusOptions code

(cherry picked from commit 881126c7f1145fb2db1143b63c1e0f2f81ebb2ea)
This commit is contained in:
Shariq Ansari 2025-07-02 14:10:14 +05:30 committed by Mergify
parent 6647a83485
commit 9b315c2e0c
5 changed files with 38 additions and 26 deletions

View File

@ -26,9 +26,10 @@
:options="
statusOptions(
'deal',
document,
deal.data._customStatuses,
triggerOnChange,
document.statuses?.length
? document.statuses
: deal.data._customStatuses,
triggerStatusChange,
)
"
>
@ -755,6 +756,11 @@ const { assignees, document, triggerOnChange } = useDocument(
props.dealId,
)
async function triggerStatusChange(value) {
await triggerOnChange('status', value)
document.save.submit()
}
function reloadAssignees(data) {
if (data?.hasOwnProperty('deal_owner')) {
assignees.reload()

View File

@ -26,9 +26,10 @@
:options="
statusOptions(
'lead',
document,
lead.data._customStatuses,
triggerOnChange,
document.statuses?.length
? document.statuses
: lead.data._customStatuses,
triggerStatusChange,
)
"
>
@ -320,6 +321,11 @@ const { triggerOnChange, assignees, document } = useDocument(
props.leadId,
)
async function triggerStatusChange(value) {
await triggerOnChange('status', value)
document.save.submit()
}
const lead = createResource({
url: 'crm.fcrm.doctype.crm_lead.api.get_lead',
params: { name: props.leadId },

View File

@ -14,9 +14,10 @@
:options="
statusOptions(
'deal',
document,
deal.data._customStatuses,
triggerOnChange,
document.statuses?.length
? document.statuses
: deal.data._customStatuses,
triggerStatusChange,
)
"
>
@ -624,6 +625,11 @@ const { assignees, document, triggerOnChange } = useDocument(
props.dealId,
)
async function triggerStatusChange(value) {
await triggerOnChange('status', value)
document.save.submit()
}
function reloadAssignees(data) {
if (data?.hasOwnProperty('deal_owner')) {
assignees.reload()

View File

@ -14,9 +14,10 @@
:options="
statusOptions(
'lead',
document,
lead.data._customStatuses,
triggerOnChange,
document.statuses?.length
? document.statuses
: lead.data._customStatuses,
triggerStatusChange,
)
"
>
@ -473,6 +474,11 @@ const { assignees, document, triggerOnChange } = useDocument(
props.leadId,
)
async function triggerStatusChange(value) {
await triggerOnChange('status', value)
document.save.submit()
}
function reloadAssignees(data) {
if (data?.hasOwnProperty('lead_owner')) {
assignees.reload()

View File

@ -77,19 +77,10 @@ export const statusesStore = defineStore('crm-statuses', () => {
return communicationStatuses[name]
}
function statusOptions(
doctype,
document,
statuses = [],
triggerOnChange = null,
) {
function statusOptions(doctype, statuses = [], triggerStatusChange = null) {
let statusesByName =
doctype == 'deal' ? dealStatusesByName : leadStatusesByName
if (document?.statuses?.length) {
statuses = document.statuses
}
if (statuses?.length) {
statusesByName = statuses.reduce((acc, status) => {
acc[status] = statusesByName[status]
@ -104,11 +95,8 @@ export const statusesStore = defineStore('crm-statuses', () => {
value: statusesByName[status]?.name,
icon: () => h(IndicatorIcon, { class: statusesByName[status]?.color }),
onClick: async () => {
await triggerStatusChange?.(statusesByName[status]?.name)
capture('status_changed', { doctype, status })
if (document) {
await triggerOnChange?.('status', statusesByName[status]?.name)
document.save.submit()
}
},
})
}