diff --git a/src/modules/manager/workflowTemplates/components/CapabilityEditors/BypassableEditor.tsx b/src/modules/manager/workflowTemplates/components/CapabilityEditors/BypassableEditor.tsx new file mode 100644 index 0000000..a35741b --- /dev/null +++ b/src/modules/manager/workflowTemplates/components/CapabilityEditors/BypassableEditor.tsx @@ -0,0 +1,48 @@ +import { InputType } from "../../../../../components/common/Input"; +import { TaskDefinition } from "../../services/WorkflowTemplateService"; +import { renderTaskField } from "../taskEditorHelpers"; +import { + CapabilityEditorProps, + capabilityEditorRegistryEntry, + defaultsContext, +} from "../useCapabilityDefaults"; + +export const BypassableEditor: React.FC = (props) => { + const { task, onChange, fieldErrors } = props; + + return ( + <> + {renderTaskField( + task, + onChange, + "bypassable", + "Bypassable", + InputType.checkbox, + fieldErrors, + )} + + ); +}; + +const runValidation = ( + task: TaskDefinition, + tasks: TaskDefinition[], +): Record => { + const errors: Record = {}; + + return errors; +}; + +export function defaultsAssignment( + task: TaskDefinition, + tasks: TaskDefinition[], + ctx: defaultsContext, +) { + task.config.bypassable = false; +} + +export const bypassableEditorRegistryEntry: capabilityEditorRegistryEntry = { + Editor: BypassableEditor, + DefaultsAssignment: defaultsAssignment, + ValidationRunner: runValidation, +}; diff --git a/src/modules/manager/workflowTemplates/components/capabilityEditorRegistry.ts b/src/modules/manager/workflowTemplates/components/capabilityEditorRegistry.ts index a79c93f..7498c40 100644 --- a/src/modules/manager/workflowTemplates/components/capabilityEditorRegistry.ts +++ b/src/modules/manager/workflowTemplates/components/capabilityEditorRegistry.ts @@ -4,6 +4,7 @@ import { taskCoreEditorRegistryEntry } from "./CapabilityEditors/TaskCoreEditor" import { capabilityEditorRegistryEntry } from "./useCapabilityDefaults"; import { outcomeOfApprovalVerdictRegistryEntry } from "./CapabilityEditors/OutcomeOfApprovalVerdictRegistryEntry"; import { budgetEditorRegistryEntry } from "./CapabilityEditors/BudgetEditorRegistryEntry"; +import { bypassableEditorRegistryEntry } from "./CapabilityEditors/BypassableEditor"; export const capabilityEditorRegistry: Record< string, @@ -14,4 +15,8 @@ export const capabilityEditorRegistry: Record< IBudget: budgetEditorRegistryEntry, "IAssignees": assigneesOfITaskAssigneeRegistryEntry, "IOutcome": outcomeOfApprovalVerdictRegistryEntry, + // IFormTemplate: null, //ToDo implement this + IBypassable: bypassableEditorRegistryEntry, + // "IStage": null, //ToDo implement this + // "IStage": null, //ToDo implement this };