1
0
forked from test/crm

fix: added triggerOnRefresh & getActions method

(cherry picked from commit 9e3124d29ed94721a198468cae6ff722020f62b7)
This commit is contained in:
Shariq Ansari 2025-05-07 12:15:49 +05:30 committed by Mergify
parent 4917cf4be8
commit 6813bc6caf

View File

@ -1,6 +1,7 @@
import { getScript } from '@/data/script'
import { createToast } from '@/utils'
import { createDocumentResource } from 'frappe-ui'
import { computed } from 'vue'
const documentsCache = {}
@ -35,19 +36,39 @@ export function useDocument(doctype, docname) {
}
function setupFormScript() {
if (documentsCache[doctype][docname]['controllers']) return
const controllers = setupScript(documentsCache[doctype][docname])
if (!controllers) return
documentsCache[doctype][docname]['controllers'] = controllers
}
async function triggerOnChange(fieldname, row) {
let controllers = documentsCache[doctype][docname]?.controllers
function getController(dt = null) {
let controllers = documentsCache[doctype][docname]?.controllers || {}
if (Object.keys(controllers).length === 0) return
let _dt = row?.doctype ? row.doctype : doctype
let doctypeClassName = _dt.replace(/\s+/g, '')
dt = dt || doctype
let doctypeClassName = dt.replace(/\s+/g, '')
const c = controllers[doctypeClassName]
return c || null
}
function getActions() {
let c = getController() || setupFormScript()
if (!c) return []
return c?.actions || []
}
async function triggerOnRefresh() {
const c = getController()
if (!c) return
return await c.refresh()
}
async function triggerOnChange(fieldname, row) {
const dt = row?.doctype ? row.doctype : doctype
const c = getController(dt)
if (!c) return
if (row) {
@ -79,10 +100,10 @@ export function useDocument(doctype, docname) {
return {
document: documentsCache[doctype][docname],
getActions: () =>
documentsCache[doctype][docname]?.controller?.actions || [],
actions: computed(() => getActions()),
getOldValue,
triggerOnChange,
triggerOnRefresh,
setupFormScript,
}
}