From 42d42c30d42dfc39e202f750d3274770bff3489e Mon Sep 17 00:00:00 2001 From: John Chilton Date: Thu, 28 Aug 2025 10:38:01 -0400 Subject: [PATCH] Fix optional numeric column definitions for sample sheets. It would work properly the first time but then regress on reload and resave in the form because this initialization logic wasn't taking into account optional parameter types. --- .../Editor/Forms/FormColumnDefinition.vue | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/client/src/components/Workflow/Editor/Forms/FormColumnDefinition.vue b/client/src/components/Workflow/Editor/Forms/FormColumnDefinition.vue index 6049c3551589..7ab5bf036ba7 100644 --- a/client/src/components/Workflow/Editor/Forms/FormColumnDefinition.vue +++ b/client/src/components/Workflow/Editor/Forms/FormColumnDefinition.vue @@ -176,8 +176,19 @@ const isOptional = ref(props.value.optional ?? false); const defaultBoolean = ref(props.value.default_value === null ? "null" : props.value.default_value ? "true" : "false"); const defaultString = ref(props.value.default_value || ""); // form framework doesn't yield typed values it seems -const defaultIntAsStr = ref(props.value.default_value ? props.value.default_value.toString() : "0"); -const defaultFloatAsStr = ref(props.value.default_value ? props.value.default_value.toString() : "0.0"); + +function defaultNumberAsString(defaultForType: string): string { + if (props.value.default_value !== null && props.value.default_value !== undefined) { + return props.value.default_value.toString(); + } else if (props.value.optional) { + return ""; + } else { + return defaultForType; + } +} + +const defaultIntAsStr = ref(defaultNumberAsString("0")); +const defaultFloatAsStr = ref(defaultNumberAsString("0.0")); watch(isOptional, setIsOptional); watch(defaultIntAsStr, setDefaultByType);