From 3c15fa8809a4e0b06c1f798d902cd289bbc161a7 Mon Sep 17 00:00:00 2001 From: Mike Date: Tue, 6 Aug 2024 10:03:22 +0200 Subject: [PATCH] Feat: Add member settings page (#2574) --- .../components/form/select/WorkspaceRoles.vue | 83 +++++++++ .../project/model-page/dialog/MoveTo.vue | 5 +- .../frontend-2/components/settings/Dialog.vue | 7 +- .../components/settings/SectionHeader.vue | 3 +- .../settings/shared/ChangeRoleDialog.vue | 52 ++++++ .../settings/workspaces/Members.vue | 37 ++++ .../settings/workspaces/members/Table.vue | 160 ++++++++++++++++++ .../viewer/resources/add-model/Dialog.vue | 5 +- .../lib/common/generated/gql/gql.ts | 10 ++ .../lib/common/generated/gql/graphql.ts | 23 ++- .../lib/settings/graphql/queries.ts | 18 ++ .../frontend-2/lib/settings/helpers/utils.ts | 7 + .../lib/workspaces/graphql/mutations.ts | 15 ++ .../frontend-2/pages/projects/[id]/index.vue | 6 +- packages/shared/src/core/constants.ts | 2 +- packages/ui-components/src/lib.ts | 4 +- 16 files changed, 420 insertions(+), 17 deletions(-) create mode 100644 packages/frontend-2/components/form/select/WorkspaceRoles.vue create mode 100644 packages/frontend-2/components/settings/shared/ChangeRoleDialog.vue create mode 100644 packages/frontend-2/components/settings/workspaces/Members.vue create mode 100644 packages/frontend-2/components/settings/workspaces/members/Table.vue create mode 100644 packages/frontend-2/lib/settings/helpers/utils.ts create mode 100644 packages/frontend-2/lib/workspaces/graphql/mutations.ts diff --git a/packages/frontend-2/components/form/select/WorkspaceRoles.vue b/packages/frontend-2/components/form/select/WorkspaceRoles.vue new file mode 100644 index 000000000..cc6df772e --- /dev/null +++ b/packages/frontend-2/components/form/select/WorkspaceRoles.vue @@ -0,0 +1,83 @@ + + diff --git a/packages/frontend-2/components/project/model-page/dialog/MoveTo.vue b/packages/frontend-2/components/project/model-page/dialog/MoveTo.vue index 48a2bbca8..75483ea50 100644 --- a/packages/frontend-2/components/project/model-page/dialog/MoveTo.vue +++ b/packages/frontend-2/components/project/model-page/dialog/MoveTo.vue @@ -8,7 +8,7 @@ Move {{ versions.length }} version{{ versions.length > 1 ? 's' : '' }}
- + - +
@@ -38,7 +38,6 @@ import { graphql } from '~~/lib/common/generated/gql' import type { ProjectModelPageDialogMoveToVersionFragment } from '~~/lib/common/generated/gql/graphql' import { useMixpanel } from '~~/lib/core/composables/mp' import { useMoveVersions } from '~~/lib/projects/composables/versionManagement' -import { LayoutTabsHoriztonal } from '@speckle/ui-components' import type { LayoutPageTabItem } from '@speckle/ui-components' graphql(` diff --git a/packages/frontend-2/components/settings/Dialog.vue b/packages/frontend-2/components/settings/Dialog.vue index 34afc376e..476b21204 100644 --- a/packages/frontend-2/components/settings/Dialog.vue +++ b/packages/frontend-2/components/settings/Dialog.vue @@ -77,6 +77,7 @@ !isMobile && 'simple-scrollbar overflow-y-auto flex-1' ]" :user="user" + :workspace-id="targetWorkspaceId" /> @@ -91,6 +92,7 @@ import SettingsServerGeneral from '~/components/settings/server/General.vue' import SettingsServerProjects from '~/components/settings/server/Projects.vue' import SettingsServerActiveUsers from '~/components/settings/server/ActiveUsers.vue' import SettingsServerPendingInvitations from '~/components/settings/server/PendingInvitations.vue' +import SettingsWorkspacesMembers from '~/components/settings/workspaces/Members.vue' import { useBreakpoints } from '@vueuse/core' import { TailwindBreakpoints } from '~~/lib/common/helpers/tailwind' import { UserIcon, ServerStackIcon } from '@heroicons/vue/24/outline' @@ -154,7 +156,10 @@ const menuItemConfig = shallowRef<{ [key: string]: { [key: string]: MenuItem } } } }, workspace: { - // Workspace menu items will be added here, general, members and projects + members: { + title: 'Members', + component: SettingsWorkspacesMembers + } } }) diff --git a/packages/frontend-2/components/settings/SectionHeader.vue b/packages/frontend-2/components/settings/SectionHeader.vue index f30a7c159..1d09f06d1 100644 --- a/packages/frontend-2/components/settings/SectionHeader.vue +++ b/packages/frontend-2/components/settings/SectionHeader.vue @@ -24,7 +24,7 @@ > {{ text }}

-
+
@@ -46,6 +46,7 @@ withDefaults( text?: string buttons?: Button[] subheading?: boolean + hideDivider?: boolean }>(), { buttons: () => [] diff --git a/packages/frontend-2/components/settings/shared/ChangeRoleDialog.vue b/packages/frontend-2/components/settings/shared/ChangeRoleDialog.vue new file mode 100644 index 000000000..e34dd16fe --- /dev/null +++ b/packages/frontend-2/components/settings/shared/ChangeRoleDialog.vue @@ -0,0 +1,52 @@ + + + diff --git a/packages/frontend-2/components/settings/workspaces/Members.vue b/packages/frontend-2/components/settings/workspaces/Members.vue new file mode 100644 index 000000000..7119f6c0c --- /dev/null +++ b/packages/frontend-2/components/settings/workspaces/Members.vue @@ -0,0 +1,37 @@ + + + diff --git a/packages/frontend-2/components/settings/workspaces/members/Table.vue b/packages/frontend-2/components/settings/workspaces/members/Table.vue new file mode 100644 index 000000000..152b27ace --- /dev/null +++ b/packages/frontend-2/components/settings/workspaces/members/Table.vue @@ -0,0 +1,160 @@ + + + diff --git a/packages/frontend-2/components/viewer/resources/add-model/Dialog.vue b/packages/frontend-2/components/viewer/resources/add-model/Dialog.vue index af30bc4d4..6bd4ace3a 100644 --- a/packages/frontend-2/components/viewer/resources/add-model/Dialog.vue +++ b/packages/frontend-2/components/viewer/resources/add-model/Dialog.vue @@ -2,7 +2,7 @@
- + - +