1
0
forked from test/crm

fix: do not show contacts in dropdown in invite member page

(cherry picked from commit 4cfa0f512b0b28378cbb6dc0c4f4d5e6267812a0)
This commit is contained in:
Shariq Ansari 2025-05-19 19:05:37 +05:30 committed by Mergify
parent 8bb78a2caf
commit 620839cb2f
3 changed files with 40 additions and 5 deletions

View File

@ -117,6 +117,12 @@ def invite_by_email(emails: str, role: str):
for email in to_invite:
frappe.get_doc(doctype="CRM Invitation", email=email, role=role).insert(ignore_permissions=True)
return {
"existing_members": existing_members,
"existing_invites": existing_invites,
"to_invite": to_invite,
}
@frappe.whitelist()
def get_file_uploader_defaults(doctype: str):

View File

@ -58,6 +58,21 @@
class="p-1.5 max-h-[12rem] overflow-y-auto"
static
>
<div
v-if="!options.length"
class="flex gap-2 rounded px-2 py-1 text-base text-ink-gray-5"
>
<FeatherIcon
v-if="fetchContacts"
name="search"
class="h-4"
/>
{{
fetchContacts
? __('No results found')
: __('Type an email address to add')
}}
</div>
<ComboboxOption
v-for="option in options"
:key="option.value"
@ -137,6 +152,10 @@ const props = defineProps({
type: Function,
default: (value) => `${value} is an Invalid value`,
},
fetchContacts: {
type: Boolean,
default: true,
},
})
const values = defineModel()
@ -191,17 +210,19 @@ const filterOptions = createResource({
})
const options = computed(() => {
let searchedContacts = filterOptions.data || []
let searchedContacts = props.fetchContacts ? filterOptions.data : []
if (!searchedContacts.length && query.value) {
searchedContacts.push({
label: query.value,
value: query.value,
})
}
return searchedContacts
return searchedContacts || []
})
function reload(val) {
if (!props.fetchContacts) return
filterOptions.update({
params: { txt: val },
})

View File

@ -20,6 +20,7 @@
:error-message="
(value) => __('{0} is an invalid email address', [value])
"
:fetchContacts="false"
/>
</div>
<FormControl
@ -127,10 +128,17 @@ const inviteByEmail = createResource({
role: role.value,
}
},
onSuccess() {
onSuccess(data) {
if (data?.existing_invites?.length) {
error.value = __('Agent with email {0} already exists', [
data.existing_invites.join(', '),
])
} else {
role.value = 'Sales User'
error.value = null
}
invitees.value = []
role.value = 'Sales User'
error.value = null
pendingInvitations.reload()
updateOnboardingStep('invite_your_team')
},