From 8942bb7e4804553cd882c51d57c3956cdd579b76 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Fri, 6 Jun 2025 17:17:11 +0530 Subject: [PATCH] feat: add custom statuses using class based script --- frontend/src/data/script.js | 37 +++++++++++++++++++++++++++++++ frontend/src/pages/Deal.vue | 10 ++++++++- frontend/src/pages/Lead.vue | 10 ++++++++- frontend/src/pages/MobileDeal.vue | 8 ++++++- frontend/src/pages/MobileLead.vue | 8 ++++++- 5 files changed, 69 insertions(+), 4 deletions(-) diff --git a/frontend/src/data/script.js b/frontend/src/data/script.js index 78c22be6..b809f744 100644 --- a/frontend/src/data/script.js +++ b/frontend/src/data/script.js @@ -117,6 +117,7 @@ export function getScript(doctype, view = 'Form') { isChildDoctype = false, ) { document.actions = document.actions || [] + document.statuses = document.statuses || [] 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 diff --git a/frontend/src/pages/Deal.vue b/frontend/src/pages/Deal.vue index 67e37d18..9265db2e 100644 --- a/frontend/src/pages/Deal.vue +++ b/frontend/src/pages/Deal.vue @@ -22,7 +22,15 @@ doctype="CRM Deal" />