feat: add custom statuses using class based script
(cherry picked from commit 8942bb7e4804553cd882c51d57c3956cdd579b76)
This commit is contained in:
parent
2e9c5b1d6f
commit
9c27d3dbc6
@ -117,6 +117,7 @@ export function getScript(doctype, view = 'Form') {
|
|||||||
isChildDoctype = false,
|
isChildDoctype = false,
|
||||||
) {
|
) {
|
||||||
document.actions = document.actions || []
|
document.actions = document.actions || []
|
||||||
|
document.statuses = document.statuses || []
|
||||||
|
|
||||||
let instance = new FormClass()
|
let instance = new FormClass()
|
||||||
|
|
||||||
@ -237,6 +238,42 @@ export function getScript(doctype, view = 'Form') {
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
!Object.prototype.hasOwnProperty.call(FormClass.prototype, 'statuses')
|
||||||
|
) {
|
||||||
|
Object.defineProperty(FormClass.prototype, 'statuses', {
|
||||||
|
configurable: true,
|
||||||
|
enumerable: true,
|
||||||
|
get() {
|
||||||
|
if (!this._originalDocumentContext) {
|
||||||
|
console.warn(
|
||||||
|
'CRM Script: _originalDocumentContext not found on instance for statuses getter.',
|
||||||
|
)
|
||||||
|
return []
|
||||||
|
}
|
||||||
|
|
||||||
|
return this._originalDocumentContext.statuses
|
||||||
|
},
|
||||||
|
set(newValue) {
|
||||||
|
if (!this._originalDocumentContext) {
|
||||||
|
console.warn(
|
||||||
|
'CRM Script: _originalDocumentContext not found on instance for statuses setter.',
|
||||||
|
)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (!Array.isArray(newValue)) {
|
||||||
|
console.warn(
|
||||||
|
'CRM Script: "statuses" property must be an array. Value was not set.',
|
||||||
|
newValue,
|
||||||
|
)
|
||||||
|
this._originalDocumentContext.statuses = []
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this._originalDocumentContext.statuses = newValue
|
||||||
|
},
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// utility function to setup a form controller
|
// utility function to setup a form controller
|
||||||
|
|||||||
@ -22,7 +22,15 @@
|
|||||||
doctype="CRM Deal"
|
doctype="CRM Deal"
|
||||||
/>
|
/>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
:options="statusOptions('deal', updateField, deal.data._customStatuses)"
|
:options="
|
||||||
|
statusOptions(
|
||||||
|
'deal',
|
||||||
|
updateField,
|
||||||
|
document.statuses?.length
|
||||||
|
? document.statuses
|
||||||
|
: deal.data._customStatuses,
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button :label="deal.data.status">
|
<Button :label="deal.data.status">
|
||||||
|
|||||||
@ -22,7 +22,15 @@
|
|||||||
doctype="CRM Lead"
|
doctype="CRM Lead"
|
||||||
/>
|
/>
|
||||||
<Dropdown
|
<Dropdown
|
||||||
:options="statusOptions('lead', updateField, lead.data._customStatuses)"
|
:options="
|
||||||
|
statusOptions(
|
||||||
|
'lead',
|
||||||
|
updateField,
|
||||||
|
document.statuses?.length
|
||||||
|
? document.statuses
|
||||||
|
: lead.data._customStatuses,
|
||||||
|
)
|
||||||
|
"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
<Button :label="lead.data.status">
|
<Button :label="lead.data.status">
|
||||||
|
|||||||
@ -11,7 +11,13 @@
|
|||||||
<div class="absolute right-0">
|
<div class="absolute right-0">
|
||||||
<Dropdown
|
<Dropdown
|
||||||
:options="
|
:options="
|
||||||
statusOptions('deal', updateField, deal.data._customStatuses)
|
statusOptions(
|
||||||
|
'deal',
|
||||||
|
updateField,
|
||||||
|
document.statuses?.length
|
||||||
|
? document.statuses
|
||||||
|
: deal.data._customStatuses,
|
||||||
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
|
|||||||
@ -11,7 +11,13 @@
|
|||||||
<div class="absolute right-0">
|
<div class="absolute right-0">
|
||||||
<Dropdown
|
<Dropdown
|
||||||
:options="
|
:options="
|
||||||
statusOptions('lead', updateField, lead.data._customStatuses)
|
statusOptions(
|
||||||
|
'lead',
|
||||||
|
updateField,
|
||||||
|
document.statuses?.length
|
||||||
|
? document.statuses
|
||||||
|
: lead.data._customStatuses,
|
||||||
|
)
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
<template #default="{ open }">
|
<template #default="{ open }">
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user