From 854ba4bf1acccf24a17836a61ed5df77bd432ae1 Mon Sep 17 00:00:00 2001 From: Colin Dawson Date: Tue, 10 Feb 2026 23:22:58 +0000 Subject: [PATCH] Upgraded domain picker to make the blank first entry optional --- src/components/common/formHelpers.tsx | 2 ++ src/components/pickers/DomainPicker.tsx | 4 +++- .../WorkflowTemplateDetails.tsx | 11 ++++++++++- .../workflowTemplates/components/GeneralTab.tsx | 16 ++++++++++++++++ 4 files changed, 31 insertions(+), 2 deletions(-) diff --git a/src/components/common/formHelpers.tsx b/src/components/common/formHelpers.tsx index 6541336..e5f8dda 100644 --- a/src/components/common/formHelpers.tsx +++ b/src/components/common/formHelpers.tsx @@ -531,6 +531,7 @@ export const renderDomainPicker = ( errors: FormError, minEntries: number, maxEntries?: number, + includeBlankFirstEntry?: boolean, onChange?: (name: string, values: CustomFieldValue[]) => void, ) => { const domainValues: CustomFieldValue[] | undefined = data[ @@ -545,6 +546,7 @@ export const renderDomainPicker = ( minEntries={minEntries} maxEntries={maxEntries} values={domainValues} + includeBlankFirstEntry={includeBlankFirstEntry} error={errors[name]} onChange={onChange} /> diff --git a/src/components/pickers/DomainPicker.tsx b/src/components/pickers/DomainPicker.tsx index 282f0a1..12c1e2e 100644 --- a/src/components/pickers/DomainPicker.tsx +++ b/src/components/pickers/DomainPicker.tsx @@ -14,6 +14,7 @@ interface DomainPickerProps { values: CustomFieldValue[]; minEntries?: number; maxEntries?: number; + includeBlankFirstEntry?: boolean; onChange?: (name: string, value: CustomFieldValue[]) => void; } @@ -25,6 +26,7 @@ export default function DomainPicker({ values, minEntries, maxEntries, + includeBlankFirstEntry, onChange, }: DomainPickerProps) { const [options, setOptions] = useState([]); @@ -114,7 +116,7 @@ export default function DomainPicker({ error={error} value={value} options={options} - includeBlankFirstEntry={true} + includeBlankFirstEntry={includeBlankFirstEntry ?? true} onChange={handleChange} /> ); diff --git a/src/modules/manager/workflowTemplates/WorkflowTemplateDetails.tsx b/src/modules/manager/workflowTemplates/WorkflowTemplateDetails.tsx index 3afdbc6..4b2f0dd 100644 --- a/src/modules/manager/workflowTemplates/WorkflowTemplateDetails.tsx +++ b/src/modules/manager/workflowTemplates/WorkflowTemplateDetails.tsx @@ -17,6 +17,8 @@ import { } from "../../../components/common/formHelpers"; import { useForm } from "../../../components/common/useForm"; import ErrorBlock from "../../../components/common/ErrorBlock"; +import authentication from "../../frame/services/authenticationService"; +import { MakeGeneralIdRef } from "../../../utils/GeneralIdRef"; const WorkflowTemplateDetails: React.FC<{ editMode: boolean }> = ({ editMode, @@ -29,7 +31,7 @@ const WorkflowTemplateDetails: React.FC<{ editMode: boolean }> = ({ loaded: false, data: { name: "", - domainId: {}, + domainId: [] as CustomFieldValue[], activityNameTemplate: "", description: "", } as CreateWorkflowTemplateVersion, @@ -51,6 +53,7 @@ const WorkflowTemplateDetails: React.FC<{ editMode: boolean }> = ({ .max(450) .label(t("ActivityNameTemplate")), description: Joi.string().required().label(t("Description")), + domainId: Joi.required(), }; // ----------------------------- @@ -72,6 +75,11 @@ const WorkflowTemplateDetails: React.FC<{ editMode: boolean }> = ({ } catch (ex: any) { form.handleGeneralError(ex); } + } else { + const user = authentication.getCurrentUser(); + newData.domainId = [ + { value: MakeGeneralIdRef(user?.domainid) } as CustomFieldValue, + ]; } form.setState({ ...form.state, loaded: true, data: newData }); @@ -121,6 +129,7 @@ const WorkflowTemplateDetails: React.FC<{ editMode: boolean }> = ({ errors={errors} isEditMode={editMode} onFieldChange={form.handleChange} + handleDomainPickerChange={form.handleDomainPickerChange} /> , diff --git a/src/modules/manager/workflowTemplates/components/GeneralTab.tsx b/src/modules/manager/workflowTemplates/components/GeneralTab.tsx index 5eba2d7..3b2e87e 100644 --- a/src/modules/manager/workflowTemplates/components/GeneralTab.tsx +++ b/src/modules/manager/workflowTemplates/components/GeneralTab.tsx @@ -5,20 +5,24 @@ import { InputType } from "../../../../components/common/Input"; import { renderInput, renderError, + renderDomainPicker, } from "../../../../components/common/formHelpers"; import { CreateWorkflowTemplateVersion } from "../services/WorkflowTemplateService"; +import { CustomFieldValue } from "../../glossary/services/glossaryService"; interface GeneralTabProps { data: CreateWorkflowTemplateVersion; errors: Record; isEditMode: boolean; onFieldChange: (e: React.ChangeEvent) => void; + handleDomainPickerChange: (name: string, values: CustomFieldValue[]) => void; } const GeneralTab: React.FC = ({ data, errors, onFieldChange, + handleDomainPickerChange, }) => { const { t } = useTranslation(); @@ -26,6 +30,18 @@ const GeneralTab: React.FC = ({
{renderError("_general", errors)} + {renderDomainPicker( + true, + "domainId", + t("Domain"), + data, + errors, + 1, + 1, + false, + handleDomainPickerChange, + )} + {renderInput( "name", t("WorkflowTemplateName"),