From 6410dd04b88bbcb6a6325f74ec8b8eb671ce6975 Mon Sep 17 00:00:00 2001 From: Kristaps Fabians Geikins Date: Wed, 5 Jun 2024 16:35:07 +0300 Subject: [PATCH] feat(fe2): disable New Automation CTA if no models available (#2327) --- .../components/automate/runs/Table.vue | 4 +- .../components/form/select/Models.vue | 8 ++++ .../automation/FunctionSettingsDialog.vue | 2 +- .../project/page/automation/Models.vue | 6 ++- .../project/page/automations/EmptyState.vue | 19 ++++++---- .../project/page/automations/Header.vue | 18 +++++---- .../project/page/automations/Row.vue | 7 ++-- .../project/page/automations/RunDialog.vue | 21 +++++----- .../project/page/automations/Tab.vue | 12 ++++++ .../lib/automate/composables/runs.ts | 19 +++++++--- .../lib/common/generated/gql/gql.ts | 4 +- .../lib/common/generated/gql/graphql.ts | 38 +++++++++---------- .../lib/projects/graphql/queries.ts | 5 +++ .../assets/automate/typedefs/automate.graphql | 6 +-- .../modules/core/graph/generated/graphql.ts | 12 +++--- packages/server/modules/core/loaders.ts | 5 ++- .../modules/core/repositories/branches.ts | 35 +++++++++++++++-- .../graph/generated/graphql.ts | 6 +-- .../server/test/graphql/generated/graphql.ts | 10 ++--- .../src/components/form/select/Base.vue | 6 +-- 20 files changed, 161 insertions(+), 82 deletions(-) diff --git a/packages/frontend-2/components/automate/runs/Table.vue b/packages/frontend-2/components/automate/runs/Table.vue index 4e64f09ce..0219cf9ab 100644 --- a/packages/frontend-2/components/automate/runs/Table.vue +++ b/packages/frontend-2/components/automate/runs/Table.vue @@ -27,15 +27,17 @@ + diff --git a/packages/frontend-2/components/project/page/automations/EmptyState.vue b/packages/frontend-2/components/project/page/automations/EmptyState.vue index eb0c0c7be..72c341a2b 100644 --- a/packages/frontend-2/components/project/page/automations/EmptyState.vue +++ b/packages/frontend-2/components/project/page/automations/EmptyState.vue @@ -19,14 +19,16 @@
- - New Automation - +
+ + New Automation + +
() const functions = computed(() => props.functions?.automateFunctions.items || []) diff --git a/packages/frontend-2/components/project/page/automations/Header.vue b/packages/frontend-2/components/project/page/automations/Header.vue index 3ad754415..a5cc80716 100644 --- a/packages/frontend-2/components/project/page/automations/Header.vue +++ b/packages/frontend-2/components/project/page/automations/Header.vue @@ -21,13 +21,16 @@ > Explore Functions - - New Automation - +
+ + New Automation + +
@@ -42,6 +45,7 @@ defineEmits<{ defineProps<{ showEmptyState?: boolean + disabledCreateBecauseOf?: string }>() const search = defineModel('search') diff --git a/packages/frontend-2/components/project/page/automations/Row.vue b/packages/frontend-2/components/project/page/automations/Row.vue index c60339617..01d00e523 100644 --- a/packages/frontend-2/components/project/page/automations/Row.vue +++ b/packages/frontend-2/components/project/page/automations/Row.vue @@ -64,6 +64,7 @@ import { CubeIcon, ExclamationTriangleIcon } from '@heroicons/vue/24/outline' +import { isNonNullable } from '@speckle/shared' import { graphql } from '~/lib/common/generated/gql' import { type ProjectPageAutomationsRow_AutomationFragment } from '~/lib/common/generated/gql/graphql' import { projectAutomationRoute } from '~/lib/common/helpers/route' @@ -108,9 +109,9 @@ const isTestAutomation = computed(() => props.automation.isTestAutomation) const triggerModels = computed( () => - props.automation.currentRevision?.triggerDefinitions.map( - (trigger) => trigger.model - ) || [] + props.automation.currentRevision?.triggerDefinitions + .map((trigger) => trigger.model) + .filter(isNonNullable) || [] ) const triggerLabel = computed(() => { diff --git a/packages/frontend-2/components/project/page/automations/RunDialog.vue b/packages/frontend-2/components/project/page/automations/RunDialog.vue index a197ef6ac..64be0c399 100644 --- a/packages/frontend-2/components/project/page/automations/RunDialog.vue +++ b/packages/frontend-2/components/project/page/automations/RunDialog.vue @@ -9,20 +9,21 @@ }, props: { color: 'secondary', fullWidth: true } }, - { - text: 'View Model Version', - props: { - fullWidth: true, - to: - run && projectId - ? versionUrl({ + ...(run && projectId && run.trigger.model && run.trigger.version + ? [ + { + text: 'View Model Version', + props: { + fullWidth: true, + to: versionUrl({ projectId, modelId: run.trigger.model.id, versionId: run.trigger.version.id }) - : undefined - } - } + } + } + ] + : []) ]" >