diff --git a/packages/nc-gui/components/cell/User.vue b/packages/nc-gui/components/cell/User.vue index e12394268a..70647cbc3b 100644 --- a/packages/nc-gui/components/cell/User.vue +++ b/packages/nc-gui/components/cell/User.vue @@ -326,7 +326,7 @@ const filterOption = (input: string, option: any) => { :class="`nc-select-option-${column.title}-${op.email}`" @click.stop > - + - {{ op.display_name?.length ? op.display_name : op.email }} + + + {{ op.display_name?.length ? op.display_name : op.email }} + diff --git a/packages/nc-gui/components/project/AccessSettings.vue b/packages/nc-gui/components/project/AccessSettings.vue index 006c4e80f3..cfcd2b44e1 100644 --- a/packages/nc-gui/components/project/AccessSettings.vue +++ b/packages/nc-gui/components/project/AccessSettings.vue @@ -10,6 +10,7 @@ import { } from 'nocodb-sdk' import type { Roles, WorkspaceUserRoles } from 'nocodb-sdk' import { isEeUI, storeToRefs, useUserSorts } from '#imports' +import type { User } from '#imports' const basesStore = useBases() const { getBaseUsers, createProjectUser, updateProjectUser, removeProjectUser } = basesStore @@ -85,7 +86,7 @@ const updateCollaborator = async (collab: any, roles: ProjectRoles) => { WorkspaceRolesToProjectRoles[currentCollaborator.workspace_roles as WorkspaceUserRoles] === roles && isEeUI) ) { - await removeProjectUser(activeProjectId.value!, collab) + await removeProjectUser(activeProjectId.value!, currentCollaborator as unknown as User) if ( currentCollaborator.workspace_roles && WorkspaceRolesToProjectRoles[currentCollaborator.workspace_roles as WorkspaceUserRoles] === roles && @@ -97,11 +98,11 @@ const updateCollaborator = async (collab: any, roles: ProjectRoles) => { } } else if (currentCollaborator.base_roles) { currentCollaborator.roles = roles - await updateProjectUser(activeProjectId.value!, collab) + await updateProjectUser(activeProjectId.value!, currentCollaborator as unknown as User) } else { currentCollaborator.roles = roles currentCollaborator.base_roles = roles - await createProjectUser(activeProjectId.value!, collab) + await createProjectUser(activeProjectId.value!, currentCollaborator as unknown as User) } } catch (e: any) { message.error(await extractSdkResponseErrorMsg(e)) diff --git a/packages/nc-gui/components/virtual-cell/Formula.vue b/packages/nc-gui/components/virtual-cell/Formula.vue index a55e864d66..a23da04391 100644 --- a/packages/nc-gui/components/virtual-cell/Formula.vue +++ b/packages/nc-gui/components/virtual-cell/Formula.vue @@ -11,7 +11,6 @@ import { renderValue, replaceUrlsWithLink, useBase, - useGlobal, } from '#imports' // todo: column type doesn't have required property `error` - throws in typecheck @@ -23,8 +22,6 @@ const isExpandedFormOpen = inject(IsExpandedFormOpenInj, ref(false))! const { isPg } = useBase() -const { showNull } = useGlobal() - const result = computed(() => isPg(column.value.source_id) ? renderValue(handleTZ(cellValue?.value)) : renderValue(cellValue?.value), ) diff --git a/packages/nc-gui/components/workspace/CollaboratorsList.vue b/packages/nc-gui/components/workspace/CollaboratorsList.vue index 470c281e73..fcc4a781fc 100644 --- a/packages/nc-gui/components/workspace/CollaboratorsList.vue +++ b/packages/nc-gui/components/workspace/CollaboratorsList.vue @@ -1,6 +1,6 @@ @@ -59,15 +72,25 @@ onMounted(async () => {
-
{{ $t('objects.users') }}
-
{{ $t('general.access') }}
+
+ + {{ $t('objects.users') }} + + +
+
+ + {{ $t('general.access') }} + + +
{{ $t('title.dateJoined') }}
Actions
diff --git a/packages/nc-gui/composables/useUserSorts.ts b/packages/nc-gui/composables/useUserSorts.ts index 4644bd86ac..9182a701e5 100644 --- a/packages/nc-gui/composables/useUserSorts.ts +++ b/packages/nc-gui/composables/useUserSorts.ts @@ -1,5 +1,5 @@ import rfdc from 'rfdc' -import { OrgUserRoles, ProjectRoles, WorkspaceUserRoles } from 'nocodb-sdk' +import { OrderedOrgRoles, OrderedProjectRoles, OrderedWorkspaceRoles } from 'nocodb-sdk' import type { UsersSortType } from '~/lib' import { useGlobal } from '#imports' @@ -105,11 +105,11 @@ export function useUserSorts(roleType: 'Workspace' | 'Org' | 'Project') { function handleGetSortedData>(data: T[], sortsConfig: UsersSortType = sorts.value): T[] { let userRoleOrder: string[] = [] if (roleType === 'Workspace') { - userRoleOrder = Object.values(WorkspaceUserRoles) + userRoleOrder = Object.values(OrderedWorkspaceRoles) } else if (roleType === 'Org') { - userRoleOrder = Object.values(OrgUserRoles) + userRoleOrder = Object.values(OrderedOrgRoles) } else if (roleType === 'Project') { - userRoleOrder = Object.values(ProjectRoles) + userRoleOrder = Object.values(OrderedProjectRoles) } data = clone(data) diff --git a/packages/nocodb-sdk/src/lib/enums.ts b/packages/nocodb-sdk/src/lib/enums.ts index 6cde2bbcb7..d8d7f5c7bf 100644 --- a/packages/nocodb-sdk/src/lib/enums.ts +++ b/packages/nocodb-sdk/src/lib/enums.ts @@ -243,8 +243,12 @@ export const OrderedWorkspaceRoles = [ WorkspaceUserRoles.EDITOR, WorkspaceUserRoles.COMMENTER, WorkspaceUserRoles.VIEWER, - // placeholder for no access - null, +]; + +export const OrderedOrgRoles = [ + OrgUserRoles.SUPER_ADMIN, + OrgUserRoles.CREATOR, + OrgUserRoles.VIEWER, ]; export const OrderedProjectRoles = [