diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 5f65b7580..418edea78 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -31,7 +31,7 @@ ], // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "yarn && yarn build:public && cp -n /workspaces/${localWorkspaceFolderBasename}/packages/server/.env-example /workspaces/${localWorkspaceFolderBasename}/packages/server/.env && cp -n /workspaces/${localWorkspaceFolderBasename}/packages/frontend-2/.env.example /workspaces/${localWorkspaceFolderBasename}/packages/frontend-2/.env", + "postCreateCommand": "/workspaces/${localWorkspaceFolderBasename}/.devcontainer/postCreateCommand.sh", // Configure tool-specific properties. // "customizations": {}, diff --git a/.devcontainer/postCreateCommand.sh b/.devcontainer/postCreateCommand.sh new file mode 100755 index 000000000..7b8817014 --- /dev/null +++ b/.devcontainer/postCreateCommand.sh @@ -0,0 +1,17 @@ +#!/usr/bin/env bash +set -eox pipefail + +echo "Running postCreateCommand.sh" + +# determine where the script is located, navigate into that directory, then find the root of the git repo in which it is located +SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) +cd "${SCRIPT_DIR}" +GIT_ROOT="$(git rev-parse --show-toplevel)" + +echo "Setting up environment variables by copying .env files" +cp -n "${GIT_ROOT}/packages/server/.env-example" "${GIT_ROOT}/packages/server/.env" || true +cp -n "${GIT_ROOT}/packages/frontend-2/.env.example" "${GIT_ROOT}/packages/frontend-2/.env" || true + +echo "Installing nodejs dependencies and building shared packages" +yarn +yarn build:public diff --git a/packages/fileimport-service/ifc-dotnet/ConsoleProgress.cs b/packages/fileimport-service/ifc-dotnet/ConsoleProgress.cs deleted file mode 100644 index 57cf1d9a3..000000000 --- a/packages/fileimport-service/ifc-dotnet/ConsoleProgress.cs +++ /dev/null @@ -1,33 +0,0 @@ -using Speckle.Sdk.Transports; - -namespace Speckle.Converter; - -public class ConsoleProgress : IProgress -{ - private readonly TimeSpan DEBOUNCE = TimeSpan.FromSeconds(1); - private DateTime _lastTime = DateTime.UtcNow; - - private long _totalBytes; - - public void Report(ProgressArgs value) - { - if (value.ProgressEvent == ProgressEvent.DownloadBytes) - { - Interlocked.Add(ref _totalBytes, value.Count); - } - var now = DateTime.UtcNow; - if (now - _lastTime >= DEBOUNCE) - { - if (value.ProgressEvent == ProgressEvent.DownloadBytes) - { - Console.WriteLine(value.ProgressEvent + " t " + _totalBytes); - } - else - { - Console.WriteLine(value.ProgressEvent + " c " + value.Count + " t " + value.Total); - } - - _lastTime = now; - } - } -} diff --git a/packages/fileimport-service/ifc-dotnet/Program.cs b/packages/fileimport-service/ifc-dotnet/Program.cs index 2115099c2..7a4b56ed0 100644 --- a/packages/fileimport-service/ifc-dotnet/Program.cs +++ b/packages/fileimport-service/ifc-dotnet/Program.cs @@ -1,7 +1,7 @@ using System.CommandLine; using System.Text.Json; +using Speckle.Importers.Ifc; using Speckle.Sdk.Common; -using Speckle.WebIfc.Importer; var filePathArgument = new Argument(name: "filePath"); var outputPathArgument = new Argument("outputPath"); diff --git a/packages/fileimport-service/ifc-dotnet/ifc-converter.csproj b/packages/fileimport-service/ifc-dotnet/ifc-converter.csproj index 3183ad96c..49352474e 100644 --- a/packages/fileimport-service/ifc-dotnet/ifc-converter.csproj +++ b/packages/fileimport-service/ifc-dotnet/ifc-converter.csproj @@ -10,7 +10,7 @@ - + diff --git a/packages/frontend-2/components/onboarding/JoinTeammates.vue b/packages/frontend-2/components/onboarding/JoinTeammates.vue deleted file mode 100644 index c0b65e96b..000000000 --- a/packages/frontend-2/components/onboarding/JoinTeammates.vue +++ /dev/null @@ -1,100 +0,0 @@ - - - diff --git a/packages/frontend-2/components/onboarding/questions/Form.vue b/packages/frontend-2/components/onboarding/questions/Form.vue index 0b181a8ca..0d5e939bb 100644 --- a/packages/frontend-2/components/onboarding/questions/Form.vue +++ b/packages/frontend-2/components/onboarding/questions/Form.vue @@ -28,9 +28,11 @@ import { useForm } from 'vee-validate' import type { OnboardingRole, OnboardingPlan, OnboardingSource } from '@speckle/shared' import { useProcessOnboarding } from '~~/lib/auth/composables/onboarding' -import { homeRoute } from '~/lib/common/helpers/route' +import { homeRoute, workspaceJoinRoute } from '~/lib/common/helpers/route' const isOnboardingForced = useIsOnboardingForced() +const isWorkspacesEnabled = useIsWorkspacesEnabled() +const isWorkspaceNewPlansEnabled = useWorkspaceNewPlansEnabled() const { setUserOnboardingComplete, setMixpanelSegments } = useProcessOnboarding() @@ -51,6 +53,10 @@ const onSubmit = handleSubmit(async () => { plans: values.plan, source: values.source }) - navigateTo(homeRoute) + if (!isWorkspaceNewPlansEnabled.value && isWorkspacesEnabled.value) { + navigateTo(workspaceJoinRoute) + } else { + navigateTo(homeRoute) + } }) diff --git a/packages/frontend-2/components/projects/DashboardHeader.vue b/packages/frontend-2/components/projects/DashboardHeader.vue index 4288cc10e..f7ca7b0de 100644 --- a/packages/frontend-2/components/projects/DashboardHeader.vue +++ b/packages/frontend-2/components/projects/DashboardHeader.vue @@ -13,14 +13,16 @@ :invite="invite" /> diff --git a/packages/frontend-2/components/settings/workspaces/regions/Select.vue b/packages/frontend-2/components/settings/workspaces/regions/Select.vue index 858d2bca3..afa724296 100644 --- a/packages/frontend-2/components/settings/workspaces/regions/Select.vue +++ b/packages/frontend-2/components/settings/workspaces/regions/Select.vue @@ -14,7 +14,7 @@ + +
+ + + + +
+ currentStep.value === WizardSteps.Details) +const requiresWorkspaceCreation = computed(() => { + return ( + isWorkspacesEnabled.value && + isWorkspaceNewPlansEnabled.value && + (result.value?.activeUser?.workspaces?.totalCount || 0) === 0 && + // Legacy projects + (result.value?.activeUser?.versions.totalCount || 0) === 0 + ) +}) + const onCancelClick = () => { if (isFirstStep.value) { navigateTo(workspacesRoute) diff --git a/packages/frontend-2/components/workspace/JoinPage.vue b/packages/frontend-2/components/workspace/JoinPage.vue new file mode 100644 index 000000000..4186a4a01 --- /dev/null +++ b/packages/frontend-2/components/workspace/JoinPage.vue @@ -0,0 +1,84 @@ + + + diff --git a/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue b/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue new file mode 100644 index 000000000..4b3144eca --- /dev/null +++ b/packages/frontend-2/components/workspace/discoverableWorkspaces/Card.vue @@ -0,0 +1,54 @@ + + + diff --git a/packages/frontend-2/components/workspace/invite/DiscoverableWorkspaceBanner.vue b/packages/frontend-2/components/workspace/invite/DiscoverableWorkspaceBanner.vue index c71d74aa0..23790662c 100644 --- a/packages/frontend-2/components/workspace/invite/DiscoverableWorkspaceBanner.vue +++ b/packages/frontend-2/components/workspace/invite/DiscoverableWorkspaceBanner.vue @@ -1,5 +1,5 @@
-

+

{{ isPrimaryEmail ? 'Verify your email' : 'Verify additional email' }}

@@ -61,7 +61,7 @@

- +