|
|
@ -30,6 +30,7 @@ interface Collaborators { |
|
|
|
base_roles: Roles |
|
|
|
base_roles: Roles |
|
|
|
workspace_roles: WorkspaceUserRoles |
|
|
|
workspace_roles: WorkspaceUserRoles |
|
|
|
created_at: string |
|
|
|
created_at: string |
|
|
|
|
|
|
|
display_name: string | null |
|
|
|
} |
|
|
|
} |
|
|
|
const collaborators = ref<Collaborators[]>([]) |
|
|
|
const collaborators = ref<Collaborators[]>([]) |
|
|
|
const totalCollaborators = ref(0) |
|
|
|
const totalCollaborators = ref(0) |
|
|
@ -40,7 +41,11 @@ const isSearching = ref(false) |
|
|
|
const accessibleRoles = ref<(typeof ProjectRoles)[keyof typeof ProjectRoles][]>([]) |
|
|
|
const accessibleRoles = ref<(typeof ProjectRoles)[keyof typeof ProjectRoles][]>([]) |
|
|
|
|
|
|
|
|
|
|
|
const filteredCollaborators = computed(() => |
|
|
|
const filteredCollaborators = computed(() => |
|
|
|
collaborators.value.filter((collab) => collab.email.toLowerCase().includes(userSearchText.value.toLowerCase())), |
|
|
|
collaborators.value.filter((collab) => |
|
|
|
|
|
|
|
collab.display_name |
|
|
|
|
|
|
|
? collab.display_name.toLowerCase().includes(userSearchText.value.toLowerCase()) |
|
|
|
|
|
|
|
: collab.email.toLowerCase().includes(userSearchText.value.toLowerCase()), |
|
|
|
|
|
|
|
), |
|
|
|
) |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
const sortedCollaborators = computed(() => { |
|
|
|
const sortedCollaborators = computed(() => { |
|
|
@ -183,7 +188,7 @@ onMounted(async () => { |
|
|
|
<div class="flex gap-3 items-center users-email-grid"> |
|
|
|
<div class="flex gap-3 items-center users-email-grid"> |
|
|
|
<GeneralUserIcon size="base" :email="collab.email" /> |
|
|
|
<GeneralUserIcon size="base" :email="collab.email" /> |
|
|
|
<span class="truncate"> |
|
|
|
<span class="truncate"> |
|
|
|
{{ collab.email }} |
|
|
|
{{ collab.display_name || collab.email }} |
|
|
|
</span> |
|
|
|
</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="user-access-grid"> |
|
|
|
<div class="user-access-grid"> |
|
|
|