fix: added triggerOnRefresh & getActions method
(cherry picked from commit 9e3124d29ed94721a198468cae6ff722020f62b7)
This commit is contained in:
parent
4917cf4be8
commit
6813bc6caf
@ -1,6 +1,7 @@
|
|||||||
import { getScript } from '@/data/script'
|
import { getScript } from '@/data/script'
|
||||||
import { createToast } from '@/utils'
|
import { createToast } from '@/utils'
|
||||||
import { createDocumentResource } from 'frappe-ui'
|
import { createDocumentResource } from 'frappe-ui'
|
||||||
|
import { computed } from 'vue'
|
||||||
|
|
||||||
const documentsCache = {}
|
const documentsCache = {}
|
||||||
|
|
||||||
@ -35,19 +36,39 @@ export function useDocument(doctype, docname) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function setupFormScript() {
|
function setupFormScript() {
|
||||||
|
if (documentsCache[doctype][docname]['controllers']) return
|
||||||
|
|
||||||
const controllers = setupScript(documentsCache[doctype][docname])
|
const controllers = setupScript(documentsCache[doctype][docname])
|
||||||
if (!controllers) return
|
if (!controllers) return
|
||||||
|
|
||||||
documentsCache[doctype][docname]['controllers'] = controllers
|
documentsCache[doctype][docname]['controllers'] = controllers
|
||||||
}
|
}
|
||||||
|
|
||||||
async function triggerOnChange(fieldname, row) {
|
function getController(dt = null) {
|
||||||
let controllers = documentsCache[doctype][docname]?.controllers
|
let controllers = documentsCache[doctype][docname]?.controllers || {}
|
||||||
if (Object.keys(controllers).length === 0) return
|
if (Object.keys(controllers).length === 0) return
|
||||||
|
|
||||||
let _dt = row?.doctype ? row.doctype : doctype
|
dt = dt || doctype
|
||||||
let doctypeClassName = _dt.replace(/\s+/g, '')
|
let doctypeClassName = dt.replace(/\s+/g, '')
|
||||||
const c = controllers[doctypeClassName]
|
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 (!c) return
|
||||||
|
|
||||||
if (row) {
|
if (row) {
|
||||||
@ -79,10 +100,10 @@ export function useDocument(doctype, docname) {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
document: documentsCache[doctype][docname],
|
document: documentsCache[doctype][docname],
|
||||||
getActions: () =>
|
actions: computed(() => getActions()),
|
||||||
documentsCache[doctype][docname]?.controller?.actions || [],
|
|
||||||
getOldValue,
|
getOldValue,
|
||||||
triggerOnChange,
|
triggerOnChange,
|
||||||
|
triggerOnRefresh,
|
||||||
setupFormScript,
|
setupFormScript,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user