fix: create new email/phone if contact doesn't have any
This commit is contained in:
parent
d408d066c7
commit
1203990faf
@ -96,7 +96,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="flex-1 overflow-hidden">
|
<div class="flex-1 overflow-hidden">
|
||||||
<Dropdown
|
<Dropdown
|
||||||
v-if="field.type === 'dropdown'"
|
v-if="field.type === 'dropdown' && field.options.length"
|
||||||
:options="field.options"
|
:options="field.options"
|
||||||
class="form-control show-dropdown-icon w-full flex-1"
|
class="form-control show-dropdown-icon w-full flex-1"
|
||||||
>
|
>
|
||||||
@ -561,8 +561,6 @@ const details = computed(() => {
|
|||||||
name: 'email_id',
|
name: 'email_id',
|
||||||
options: contact.value?.email_ids?.map((email) => {
|
options: contact.value?.email_ids?.map((email) => {
|
||||||
return {
|
return {
|
||||||
label: email.email_id,
|
|
||||||
value: email.email_id,
|
|
||||||
component: h(DropdownItem, {
|
component: h(DropdownItem, {
|
||||||
value: email.email_id,
|
value: email.email_id,
|
||||||
selected: email.email_id === contact.value.email_id,
|
selected: email.email_id === contact.value.email_id,
|
||||||
@ -570,8 +568,13 @@ const details = computed(() => {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
create: () => {
|
create: (value) => {
|
||||||
new_field.value = { type: 'email', placeholder: 'Add email address' }
|
new_field.value = {
|
||||||
|
type: 'email',
|
||||||
|
fieldname: 'email',
|
||||||
|
value,
|
||||||
|
placeholder: 'Add email address',
|
||||||
|
}
|
||||||
dialogOptions.value = {
|
dialogOptions.value = {
|
||||||
title: 'Add email',
|
title: 'Add email',
|
||||||
actions: [
|
actions: [
|
||||||
@ -591,8 +594,6 @@ const details = computed(() => {
|
|||||||
name: 'mobile_no',
|
name: 'mobile_no',
|
||||||
options: contact.value?.phone_nos?.map((phone) => {
|
options: contact.value?.phone_nos?.map((phone) => {
|
||||||
return {
|
return {
|
||||||
label: phone.phone,
|
|
||||||
value: phone.phone,
|
|
||||||
component: h(DropdownItem, {
|
component: h(DropdownItem, {
|
||||||
value: phone.phone,
|
value: phone.phone,
|
||||||
selected: phone.phone === contact.value.mobile_no,
|
selected: phone.phone === contact.value.mobile_no,
|
||||||
@ -600,8 +601,13 @@ const details = computed(() => {
|
|||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
create: () => {
|
create: (value) => {
|
||||||
new_field.value = { type: 'phone', placeholder: 'Add mobile no.' }
|
new_field.value = {
|
||||||
|
type: 'phone',
|
||||||
|
fieldname: 'mobile_no',
|
||||||
|
value,
|
||||||
|
placeholder: 'Add mobile no.',
|
||||||
|
}
|
||||||
dialogOptions.value = {
|
dialogOptions.value = {
|
||||||
title: 'Add mobile no.',
|
title: 'Add mobile no.',
|
||||||
actions: [
|
actions: [
|
||||||
@ -641,6 +647,10 @@ const new_field = ref({})
|
|||||||
const dialogOptions = ref({})
|
const dialogOptions = ref({})
|
||||||
|
|
||||||
function updateContact(fieldname, value) {
|
function updateContact(fieldname, value) {
|
||||||
|
if (['mobile_no', 'email_id'].includes(fieldname)) {
|
||||||
|
details.value.find((d) => d.name === fieldname).create(value)
|
||||||
|
return
|
||||||
|
}
|
||||||
createResource({
|
createResource({
|
||||||
url: 'frappe.client.set_value',
|
url: 'frappe.client.set_value',
|
||||||
params: {
|
params: {
|
||||||
@ -698,6 +708,9 @@ async function createNew(field, close) {
|
|||||||
icon: 'check',
|
icon: 'check',
|
||||||
iconClasses: 'text-green-600',
|
iconClasses: 'text-green-600',
|
||||||
})
|
})
|
||||||
|
if (!contact.value[new_field.value.fieldname]) {
|
||||||
|
setAsPrimary(new_field.value.fieldname, new_field.value.value)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
close()
|
close()
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user