+
How can we improve Speckle? If you have a feature request, please also share how
you would use it and why it's important to you
@@ -18,6 +18,13 @@
label="Feedback"
color="foundation"
/>
+
+ Need help? For support, head over to our
+
+ community forum
+
+ where we can chat and solve problems together.
+
From 1f1300baaf8649362e3f4587fab27213581e6002 Mon Sep 17 00:00:00 2001
From: Benjamin Ottensten
Date: Fri, 18 Oct 2024 12:40:20 +0200
Subject: [PATCH 5/6] Fix: Various papercuts (#3296)
* Update move copy
* Ensure version counter doesn't break onto 2 lines
* Increase contrast in breadcrumb
Darker '/' and only font-medium on the active item
* Make it clearer to input new short ID and not current
* Add ... to menu items
* Change more "..." in menu items
* Fix gap and border between invite banners
And move the background to the individual banners
---
packages/frontend-2/components/header/NavLink.vue | 6 +++---
packages/frontend-2/components/invite/Banner.vue | 2 +-
packages/frontend-2/components/projects/DashboardHeader.vue | 5 +----
.../frontend-2/components/settings/server/ActiveUsers.vue | 4 ++--
.../components/settings/server/PendingInvitations.vue | 2 +-
.../components/settings/shared/projects/index.vue | 4 ++--
.../settings/workspaces/General/EditSlugDialog.vue | 2 +-
.../frontend-2/components/workspace/MoveProjectsDialog.vue | 4 ++--
.../frontend-2/components/workspace/page/VersionCount.vue | 2 +-
packages/frontend-2/pages/projects/[id]/index.vue | 4 ++--
10 files changed, 16 insertions(+), 19 deletions(-)
diff --git a/packages/frontend-2/components/header/NavLink.vue b/packages/frontend-2/components/header/NavLink.vue
index 55cced73b..007b41af7 100644
--- a/packages/frontend-2/components/header/NavLink.vue
+++ b/packages/frontend-2/components/header/NavLink.vue
@@ -9,16 +9,16 @@
viewBox="0 0 8 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
- class="text-outline-2"
+ class="text-outline-5"
>
{{ name || to }}
diff --git a/packages/frontend-2/components/invite/Banner.vue b/packages/frontend-2/components/invite/Banner.vue
index 0d605747a..74a3b1d65 100644
--- a/packages/frontend-2/components/invite/Banner.vue
+++ b/packages/frontend-2/components/invite/Banner.vue
@@ -98,7 +98,7 @@ const token = computed(
)
const mainClasses = computed(() => {
const classParts = [
- 'flex flex-col space-y-4 px-4 py-5 transition border-x border-b border-outline-2 first:border-t first:rounded-t-lg last:rounded-b-lg'
+ 'flex flex-col space-y-4 px-4 py-5 transition bg-foundation border-x border-b border-outline-2 first:border-t first:rounded-t-lg last:rounded-b-lg'
]
if (props.block) {
diff --git a/packages/frontend-2/components/projects/DashboardHeader.vue b/packages/frontend-2/components/projects/DashboardHeader.vue
index 39037d8ca..4ab541986 100644
--- a/packages/frontend-2/components/projects/DashboardHeader.vue
+++ b/packages/frontend-2/components/projects/DashboardHeader.vue
@@ -1,9 +1,6 @@
-
+
>({})
const actionItems: LayoutMenuItem[][] = [
[
{
- title: 'Change role',
+ title: 'Change role...',
id: ActionTypes.ChangeRole
},
{
- title: 'Remove user',
+ title: 'Remove user...',
id: ActionTypes.RemoveUser
}
]
diff --git a/packages/frontend-2/components/settings/server/PendingInvitations.vue b/packages/frontend-2/components/settings/server/PendingInvitations.vue
index 8b0331c75..2644c0156 100644
--- a/packages/frontend-2/components/settings/server/PendingInvitations.vue
+++ b/packages/frontend-2/components/settings/server/PendingInvitations.vue
@@ -129,7 +129,7 @@ const invites = computed(() => result.value?.admin.inviteList.items || [])
const actionItems: LayoutMenuItem[][] = [
[
{ title: 'Resend invitation', id: 'resend-invite' },
- { title: 'Delete invitation', id: 'delete-invite' }
+ { title: 'Delete invitation...', id: 'delete-invite' }
]
]
diff --git a/packages/frontend-2/components/settings/shared/projects/index.vue b/packages/frontend-2/components/settings/shared/projects/index.vue
index 10c6846bc..17d1dd237 100644
--- a/packages/frontend-2/components/settings/shared/projects/index.vue
+++ b/packages/frontend-2/components/settings/shared/projects/index.vue
@@ -177,8 +177,8 @@ const showActionsMenu = ref>({})
const actionItems: LayoutMenuItem[][] = [
[
- { title: 'View project...', id: ActionTypes.ViewProject },
- { title: 'Edit members...', id: ActionTypes.EditMembers },
+ { title: 'View project', id: ActionTypes.ViewProject },
+ { title: 'Edit members', id: ActionTypes.EditMembers },
{ title: 'Remove project...', id: ActionTypes.RemoveProject }
]
]
diff --git a/packages/frontend-2/components/settings/workspaces/General/EditSlugDialog.vue b/packages/frontend-2/components/settings/workspaces/General/EditSlugDialog.vue
index a46000ebf..18a482134 100644
--- a/packages/frontend-2/components/settings/workspaces/General/EditSlugDialog.vue
+++ b/packages/frontend-2/components/settings/workspaces/General/EditSlugDialog.vue
@@ -19,7 +19,7 @@
- You don't have any projects that are moveable to this workspace
+ You don't have any projects that can be moved into this workspace
-
+
(() => {
if (isWorkspacesEnabled.value && !project.value?.workspace?.id) {
items.push([
{
- title: 'Move...',
+ title: 'Move project...',
id: ActionTypes.Move,
disabled: !isOwner.value,
- disabledTooltip: 'Only project owners can move projects into workspaces'
+ disabledTooltip: 'Only the project owner can move this project into a workspace'
}
])
}
From 5016fad9197cc06a98928150751e1c918a963f1c Mon Sep 17 00:00:00 2001
From: Kristaps Fabians Geikins
Date: Fri, 18 Oct 2024 13:32:58 +0100
Subject: [PATCH 6/6] feat(server): make Project.version query throw if version
not found (#3336)
---
packages/frontend-2/lib/common/generated/gql/graphql.ts | 8 ++++----
.../assets/core/typedefs/modelsAndVersions.graphql | 2 +-
packages/server/modules/core/graph/generated/graphql.ts | 4 ++--
packages/server/modules/core/graph/resolvers/versions.ts | 9 +++++++--
.../modules/cross-server-sync/graph/generated/graphql.ts | 2 +-
packages/server/test/graphql/generated/graphql.ts | 2 +-
6 files changed, 16 insertions(+), 11 deletions(-)
diff --git a/packages/frontend-2/lib/common/generated/gql/graphql.ts b/packages/frontend-2/lib/common/generated/gql/graphql.ts
index e10c45735..09134fc74 100644
--- a/packages/frontend-2/lib/common/generated/gql/graphql.ts
+++ b/packages/frontend-2/lib/common/generated/gql/graphql.ts
@@ -1817,7 +1817,7 @@ export type Project = {
team: Array;
updatedAt: Scalars['DateTime']['output'];
/** Retrieve a specific project version by its ID */
- version?: Maybe;
+ version: Version;
/** Returns a flat list of all project versions */
versions: VersionCollection;
/** Return metadata about resources being requested in the viewer */
@@ -4749,7 +4749,7 @@ export type GendoAiRenderQueryVariables = Exact<{
}>;
-export type GendoAiRenderQuery = { __typename?: 'Query', project: { __typename?: 'Project', id: string, version?: { __typename?: 'Version', id: string, gendoAIRender: { __typename?: 'GendoAIRender', id: string, projectId: string, modelId: string, versionId: string, createdAt: string, updatedAt: string, gendoGenerationId?: string | null, status: string, prompt: string, camera?: {} | null, responseImage?: string | null, user?: { __typename?: 'AvatarUser', name: string, avatar?: string | null, id: string } | null } } | null } };
+export type GendoAiRenderQuery = { __typename?: 'Query', project: { __typename?: 'Project', id: string, version: { __typename?: 'Version', id: string, gendoAIRender: { __typename?: 'GendoAIRender', id: string, projectId: string, modelId: string, versionId: string, createdAt: string, updatedAt: string, gendoGenerationId?: string | null, status: string, prompt: string, camera?: {} | null, responseImage?: string | null, user?: { __typename?: 'AvatarUser', name: string, avatar?: string | null, id: string } | null } } } };
export type GendoAiRendersQueryVariables = Exact<{
versionId: Scalars['String']['input'];
@@ -4757,7 +4757,7 @@ export type GendoAiRendersQueryVariables = Exact<{
}>;
-export type GendoAiRendersQuery = { __typename?: 'Query', project: { __typename?: 'Project', id: string, version?: { __typename?: 'Version', id: string, gendoAIRenders: { __typename?: 'GendoAIRenderCollection', totalCount: number, items: Array<{ __typename?: 'GendoAIRender', id: string, createdAt: string, updatedAt: string, status: string, gendoGenerationId?: string | null, prompt: string, camera?: {} | null } | null> } } | null } };
+export type GendoAiRendersQuery = { __typename?: 'Query', project: { __typename?: 'Project', id: string, version: { __typename?: 'Version', id: string, gendoAIRenders: { __typename?: 'GendoAIRenderCollection', totalCount: number, items: Array<{ __typename?: 'GendoAIRender', id: string, createdAt: string, updatedAt: string, status: string, gendoGenerationId?: string | null, prompt: string, camera?: {} | null } | null> } } } };
export type ProjectVersionGendoAiRenderCreatedSubscriptionVariables = Exact<{
id: Scalars['String']['input'];
@@ -5723,7 +5723,7 @@ export type LegacyViewerCommitRedirectMetadataQueryVariables = Exact<{
}>;
-export type LegacyViewerCommitRedirectMetadataQuery = { __typename?: 'Query', project: { __typename?: 'Project', version?: { __typename?: 'Version', id: string, model: { __typename?: 'Model', id: string } } | null } };
+export type LegacyViewerCommitRedirectMetadataQuery = { __typename?: 'Query', project: { __typename?: 'Project', version: { __typename?: 'Version', id: string, model: { __typename?: 'Model', id: string } } } };
export type LegacyViewerStreamRedirectMetadataQueryVariables = Exact<{
streamId: Scalars['String']['input'];
diff --git a/packages/server/assets/core/typedefs/modelsAndVersions.graphql b/packages/server/assets/core/typedefs/modelsAndVersions.graphql
index a10b78598..f03b38464 100644
--- a/packages/server/assets/core/typedefs/modelsAndVersions.graphql
+++ b/packages/server/assets/core/typedefs/modelsAndVersions.graphql
@@ -39,7 +39,7 @@ extend type Project {
"""
Retrieve a specific project version by its ID
"""
- version(id: String!): Version
+ version(id: String!): Version!
"""
Retrieve a specific project model by its ID
diff --git a/packages/server/modules/core/graph/generated/graphql.ts b/packages/server/modules/core/graph/generated/graphql.ts
index 5db603fcc..f482f2d4f 100644
--- a/packages/server/modules/core/graph/generated/graphql.ts
+++ b/packages/server/modules/core/graph/generated/graphql.ts
@@ -1836,7 +1836,7 @@ export type Project = {
team: Array;
updatedAt: Scalars['DateTime']['output'];
/** Retrieve a specific project version by its ID */
- version?: Maybe;
+ version: Version;
/** Returns a flat list of all project versions */
versions: VersionCollection;
/** Return metadata about resources being requested in the viewer */
@@ -5508,7 +5508,7 @@ export type ProjectResolvers, ParentType, ContextType>;
team?: Resolver, ParentType, ContextType>;
updatedAt?: Resolver;
- version?: Resolver, ParentType, ContextType, RequireFields>;
+ version?: Resolver>;
versions?: Resolver>;
viewerResources?: Resolver, ParentType, ContextType, RequireFields>;
visibility?: Resolver;
diff --git a/packages/server/modules/core/graph/resolvers/versions.ts b/packages/server/modules/core/graph/resolvers/versions.ts
index 484380246..294304023 100644
--- a/packages/server/modules/core/graph/resolvers/versions.ts
+++ b/packages/server/modules/core/graph/resolvers/versions.ts
@@ -11,7 +11,7 @@ import {
batchDeleteCommits,
batchMoveCommitsFactory
} from '@/modules/core/services/commit/batchCommitActions'
-import { CommitUpdateError } from '@/modules/core/errors/commit'
+import { CommitNotFoundError, CommitUpdateError } from '@/modules/core/errors/commit'
import {
createCommitByBranchIdFactory,
markCommitReceivedAndNotify,
@@ -106,9 +106,14 @@ const batchMoveCommits = batchMoveCommitsFactory({
export = {
Project: {
async version(parent, args, ctx) {
- return await ctx.loaders.streams.getStreamCommit
+ const version = await ctx.loaders.streams.getStreamCommit
.forStream(parent.id)
.load(args.id)
+ if (!version) {
+ throw new CommitNotFoundError('Version not found')
+ }
+
+ return version
}
},
Version: {
diff --git a/packages/server/modules/cross-server-sync/graph/generated/graphql.ts b/packages/server/modules/cross-server-sync/graph/generated/graphql.ts
index a2decff57..b1a487086 100644
--- a/packages/server/modules/cross-server-sync/graph/generated/graphql.ts
+++ b/packages/server/modules/cross-server-sync/graph/generated/graphql.ts
@@ -1820,7 +1820,7 @@ export type Project = {
team: Array;
updatedAt: Scalars['DateTime']['output'];
/** Retrieve a specific project version by its ID */
- version?: Maybe;
+ version: Version;
/** Returns a flat list of all project versions */
versions: VersionCollection;
/** Return metadata about resources being requested in the viewer */
diff --git a/packages/server/test/graphql/generated/graphql.ts b/packages/server/test/graphql/generated/graphql.ts
index 9087d829b..aa31005ee 100644
--- a/packages/server/test/graphql/generated/graphql.ts
+++ b/packages/server/test/graphql/generated/graphql.ts
@@ -1821,7 +1821,7 @@ export type Project = {
team: Array;
updatedAt: Scalars['DateTime']['output'];
/** Retrieve a specific project version by its ID */
- version?: Maybe;
+ version: Version;
/** Returns a flat list of all project versions */
versions: VersionCollection;
/** Return metadata about resources being requested in the viewer */