diff --git a/frontend/src/components/Controls/Grid.vue b/frontend/src/components/Controls/Grid.vue
index 6b0f2f08..15fe4900 100644
--- a/frontend/src/components/Controls/Grid.vue
+++ b/frontend/src/components/Controls/Grid.vue
@@ -126,7 +126,9 @@
"
:filters="field.filters"
@change="(v) => fieldChange(v, field, row)"
- :onCreate="field.create"
+ :onCreate="
+ (value, close) => field.create(v, field, row, close)
+ "
/>
{
function getFieldObj(field) {
if (field.fieldtype === 'Link' && field.options !== 'User') {
if (!field.create) {
- field.create = (obj, close) => createDocument(field.options, obj, close)
+ field.create = (value, field, row, close) => {
+ const callback = (d) => {
+ if (d) fieldChange(d.name, field, row)
+ }
+ createDocument(field.options, value, close, callback)
+ }
}
}
diff --git a/frontend/src/components/FieldLayout/Field.vue b/frontend/src/components/FieldLayout/Field.vue
index 534a151e..a598bb39 100644
--- a/frontend/src/components/FieldLayout/Field.vue
+++ b/frontend/src/components/FieldLayout/Field.vue
@@ -275,7 +275,12 @@ const field = computed(() => {
if (field.fieldtype === 'Link' && field.options !== 'User') {
if (!field.create) {
- field.create = (obj, close) => createDocument(field.options, obj, close)
+ field.create = (value, close) => {
+ const callback = (d) => {
+ if (d) fieldChange(d.name, field)
+ }
+ createDocument(field.options, value, close, callback)
+ }
}
}
diff --git a/frontend/src/components/Modals/CreateDocumentModal.vue b/frontend/src/components/Modals/CreateDocumentModal.vue
index 6c1ccaf8..0c3e5eb1 100644
--- a/frontend/src/components/Modals/CreateDocumentModal.vue
+++ b/frontend/src/components/Modals/CreateDocumentModal.vue
@@ -62,7 +62,7 @@ const props = defineProps({
},
})
-const emit = defineEmits(['showQuickEntryModal'])
+const emit = defineEmits(['showQuickEntryModal', 'callback'])
const { isManager } = usersStore()
@@ -100,11 +100,11 @@ const tabs = createResource({
auto: true,
})
-async function create(close) {
+async function create() {
loading.value = true
error.value = null
- await call(
+ let doc = await call(
'frappe.client.insert',
{
doc: {
@@ -124,6 +124,7 @@ async function create(close) {
loading.value = false
show.value = false
+ emit('callback', doc)
}
watch(
diff --git a/frontend/src/components/Modals/GlobalModals.vue b/frontend/src/components/Modals/GlobalModals.vue
index c01dfd23..0c62c1b4 100644
--- a/frontend/src/components/Modals/GlobalModals.vue
+++ b/frontend/src/components/Modals/GlobalModals.vue
@@ -5,6 +5,7 @@
:doctype="createDocumentDoctype"
:data="createDocumentData"
@showQuickEntryModal="(dt) => openQuickEntryModal(dt)"
+ @callback="(data) => createDocumentCallback(data)"
/>