From 3a52ca20b28a89c51fad982e0e4e474410110345 Mon Sep 17 00:00:00 2001 From: Aaron Plave Date: Tue, 12 Nov 2024 14:28:22 -0800 Subject: [PATCH 1/7] Add default view id to model schema and query. Add slim view to model subscription query. --- src/types/model.ts | 7 ++++--- src/utilities/gql.ts | 8 ++++++++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/types/model.ts b/src/types/model.ts index 44368da652..e7f6817d57 100644 --- a/src/types/model.ts +++ b/src/types/model.ts @@ -2,12 +2,12 @@ import type { UserId } from './app'; import type { ConstraintModelSpec } from './constraint'; import type { ParametersMap } from './parameter'; import type { SchedulingConditionModelSpecification, SchedulingGoalModelSpecification } from './scheduling'; -import type { View } from './view'; +import type { View, ViewSlim } from './view'; export type Model = ModelSchema; export type ModelInsertInput = Pick; -export type ModelSetInput = Pick; +export type ModelSetInput = Pick; export type ModelStatus = 'extracting' | 'complete' | 'error' | 'none'; export type ModelStatusRollup = { @@ -36,6 +36,7 @@ export type ModelLog = { export type ModelSchema = { constraint_specification: ConstraintModelSpec[]; created_at: string; + default_view_id: number | null; description?: string; id: number; jar_id: number; @@ -66,4 +67,4 @@ export type ModelSlim = Pick< | 'refresh_model_parameter_logs' | 'refresh_resource_type_logs' | 'version' ->; +> & { view: ViewSlim | null }; diff --git a/src/utilities/gql.ts b/src/utilities/gql.ts index 4e4e8c063d..51b39e758c 100644 --- a/src/utilities/gql.ts +++ b/src/utilities/gql.ts @@ -2530,6 +2530,7 @@ const gql = { } } created_at + default_view_id description jar_id id @@ -2622,6 +2623,13 @@ const gql = { success } version + view { + created_at + id + name + owner + updated_at + } } } `, From ac3ee364b992d25f0891547fce6954e566a67274 Mon Sep 17 00:00:00 2001 From: Aaron Plave Date: Tue, 12 Nov 2024 14:29:08 -0800 Subject: [PATCH 2/7] Manage default view for a model in the Model Form --- src/components/model/ModelForm.svelte | 25 ++++++++++++++++++++----- src/components/model/Models.svelte | 17 ++++++++++++----- src/routes/models/[id]/+page.svelte | 7 +++++++ src/utilities/effects.ts | 4 ++-- 4 files changed, 41 insertions(+), 12 deletions(-) diff --git a/src/components/model/ModelForm.svelte b/src/components/model/ModelForm.svelte index 12eb49991c..fcdc5a1eb8 100644 --- a/src/components/model/ModelForm.svelte +++ b/src/components/model/ModelForm.svelte @@ -5,6 +5,7 @@ import { createEventDispatcher } from 'svelte'; import type { User, UserId } from '../../types/app'; import type { ModelLog, ModelSlim } from '../../types/model'; + import type { ViewSlim } from '../../types/view'; import effects from '../../utilities/effects'; import { getModelStatusRollup } from '../../utilities/model'; import { permissionHandler } from '../../utilities/permissionHandler'; @@ -19,6 +20,7 @@ export let initialModelName: string = ''; export let initialModelOwner: UserId | undefined; export let initialModelVersion: string | undefined; + export let initialModelDefaultViewId: number | null | undefined; export let activityTypeLogs: ModelLog[] | undefined; export let modelParameterLogs: ModelLog[] | undefined; export let resourceTypeLogs: ModelLog[] | undefined; @@ -26,11 +28,13 @@ export let createdAt: string | undefined; export let user: User | null; export let users: UserId[] = []; + export let views: ViewSlim[] = []; const dispatch = createEventDispatcher<{ createPlan: number; deleteModel: void; hasModelChanged: { + default_view_id: number | null; description: string; name: string; owner: UserId; @@ -60,6 +64,7 @@ $: name = initialModelName; $: owner = initialModelOwner ?? null; $: version = initialModelVersion ?? ''; + $: viewId = initialModelDefaultViewId ?? null; $: modelLogs = { refresh_activity_type_logs: activityTypeLogs ?? [], refresh_model_parameter_logs: modelParameterLogs ?? [], @@ -83,6 +88,7 @@ } $: dispatch('hasModelChanged', { + default_view_id: viewId, description, name, owner, @@ -131,7 +137,7 @@
- + - + - +