refactor: create & delete phone & email code

This commit is contained in:
Shariq Ansari 2024-03-13 13:32:41 +05:30
parent 5d4272a572
commit 475d206ee6

View File

@ -359,16 +359,29 @@ const sections = computed(() => {
onSave: (option, isNew) => { onSave: (option, isNew) => {
if (isNew) { if (isNew) {
createNew('email', option.value) createNew('email', option.value)
if (props.contact.data.email_ids.length === 1) {
_contact.value.email_id = option.value
}
} else { } else {
editOption('Contact Email', option.name, option.value) editOption('Contact Email', option.name, option.value)
} }
}, },
onDelete: (option, isNew) => { onDelete: async (option, isNew) => {
props.contact.data.email_ids = props.contact.data.email_ids =
props.contact.data.email_ids.filter( props.contact.data.email_ids.filter(
(email) => email.name !== option.name (email) => email.name !== option.name
) )
!isNew && deleteOption('Contact Email', option.name) !isNew && (await deleteOption('Contact Email', option.name))
if (_contact.value.email_id === option.value) {
if (props.contact.data.email_ids.length === 0) {
_contact.value.email_id = ''
} else {
_contact.value.email_id =
props.contact.data.email_ids.find(
(email) => email.is_primary
)?.email_id
}
}
}, },
} }
}) || [], }) || [],
@ -404,16 +417,29 @@ const sections = computed(() => {
onSave: (option, isNew) => { onSave: (option, isNew) => {
if (isNew) { if (isNew) {
createNew('phone', option.value) createNew('phone', option.value)
if (props.contact.data.phone_nos.length === 1) {
_contact.value.actual_mobile_no = option.value
}
} else { } else {
editOption('Contact Phone', option.name, option.value) editOption('Contact Phone', option.name, option.value)
} }
}, },
onDelete: (option, isNew) => { onDelete: async (option, isNew) => {
props.contact.data.phone_nos = props.contact.data.phone_nos =
props.contact.data.phone_nos.filter( props.contact.data.phone_nos.filter(
(phone) => phone.name !== option.name (phone) => phone.name !== option.name
) )
!isNew && deleteOption('Contact Phone', option.name) !isNew && (await deleteOption('Contact Phone', option.name))
if (_contact.value.actual_mobile_no === option.value) {
if (props.contact.data.phone_nos.length === 0) {
_contact.value.actual_mobile_no = ''
} else {
_contact.value.actual_mobile_no =
props.contact.data.phone_nos.find(
(phone) => phone.is_primary_mobile_no
)?.phone
}
}
}, },
} }
}) || [], }) || [],
@ -534,18 +560,16 @@ async function editOption(doctype, name, value) {
} }
async function deleteOption(doctype, name) { async function deleteOption(doctype, name) {
let d = await call('frappe.client.delete', { await call('frappe.client.delete', {
doctype, doctype,
name, name,
}) })
if (d) { await props.contact.reload()
props.contact.reload() createToast({
createToast({ title: 'Contact updated',
title: 'Contact updated', icon: 'check',
icon: 'check', iconClasses: 'text-green-600',
iconClasses: 'text-green-600', })
})
}
} }
const dirty = computed(() => { const dirty = computed(() => {