diff --git a/frontend/src/components/Activities/DataFields.vue b/frontend/src/components/Activities/DataFields.vue
index 5b97e80a..88119f80 100644
--- a/frontend/src/components/Activities/DataFields.vue
+++ b/frontend/src/components/Activities/DataFields.vue
@@ -31,7 +31,7 @@
{{ __('Loading...') }}
diff --git a/frontend/src/components/Controls/Grid.vue b/frontend/src/components/Controls/Grid.vue
index 096b3542..cce8b245 100644
--- a/frontend/src/components/Controls/Grid.vue
+++ b/frontend/src/components/Controls/Grid.vue
@@ -393,7 +393,7 @@ const {
getGridSettings,
} = getMeta(props.doctype)
getMeta(props.parentDoctype)
-const { getUser } = usersStore()
+const { users, getUser } = usersStore()
const rows = defineModel()
const parentDoc = defineModel('parent')
@@ -438,6 +438,14 @@ function getFieldObj(field) {
}
}
+ if (field.fieldtype === 'Link' && field.options === 'User') {
+ field.fieldtype = 'User'
+ field.link_filters = JSON.stringify({
+ ...(field.link_filters ? JSON.parse(field.link_filters) : {}),
+ name: ['in', users.data.crmUsers?.map((user) => user.name)],
+ })
+ }
+
return {
...field,
filters: field.link_filters && JSON.parse(field.link_filters),
diff --git a/frontend/src/components/FieldLayout/Field.vue b/frontend/src/components/FieldLayout/Field.vue
index 20a8656d..a70ff591 100644
--- a/frontend/src/components/FieldLayout/Field.vue
+++ b/frontend/src/components/FieldLayout/Field.vue
@@ -243,7 +243,7 @@ const isGridRow = inject('isGridRow')
const { getFormattedPercent, getFormattedFloat, getFormattedCurrency } =
getMeta(doctype)
-const { getUser } = usersStore()
+const { users, getUser } = usersStore()
let triggerOnChange
let parentDoc
@@ -278,6 +278,10 @@ const field = computed(() => {
if (field.fieldtype === 'Link' && field.options === 'User') {
field.fieldtype = 'User'
+ field.link_filters = JSON.stringify({
+ ...(field.link_filters ? JSON.parse(field.link_filters) : {}),
+ name: ['in', users.data.crmUsers?.map((user) => user.name)],
+ })
}
if (field.fieldtype === 'Link' && field.options !== 'User') {
diff --git a/frontend/src/components/Modals/AddExistingUserModal.vue b/frontend/src/components/Modals/AddExistingUserModal.vue
index db6b2d4d..d11c2f61 100644
--- a/frontend/src/components/Modals/AddExistingUserModal.vue
+++ b/frontend/src/components/Modals/AddExistingUserModal.vue
@@ -22,7 +22,7 @@
addValue(option) && ($refs.input.value = '')"
:placeholder="__('John Doe')"
+ :filters="{ name: ['in', users.data.crmUsers?.map((user) => user.name)] }"
:hideMe="true"
>
@@ -105,7 +106,7 @@ const oldAssignees = ref([])
const error = ref('')
-const { getUser } = usersStore()
+const { users, getUser } = usersStore()
const removeValue = (value) => {
assignees.value = assignees.value.filter(
diff --git a/frontend/src/components/Modals/TaskModal.vue b/frontend/src/components/Modals/TaskModal.vue
index a172b51e..98c2cd71 100644
--- a/frontend/src/components/Modals/TaskModal.vue
+++ b/frontend/src/components/Modals/TaskModal.vue
@@ -1,23 +1,32 @@
-