From 70a2fd3f6d6f8d5bdfad7ab32be3442d35927469 Mon Sep 17 00:00:00 2001 From: Sasa993 Date: Thu, 10 Apr 2025 09:22:49 +0200 Subject: [PATCH 1/2] Skip validation for WorkflowTemplateLaunch since workflows do not have credentials (#3081) Signed-off-by: Sasa993 --- .../templates/TemplatePage/TemplateLaunchWizard.tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx b/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx index 08b5fe85d4..2b4117f6bb 100644 --- a/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx +++ b/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx @@ -279,6 +279,11 @@ export function LaunchWizard({ inputs: , hidden: () => shouldHideOtherStep(config), validate: async (formData) => { + if (jobType === 'workflow_job_templates') { + // Skip validation for workflows — they don't have credentials + return; + } + const missingCredentialTypes: string[] = []; await requestGet>( awxAPI`/job_templates/${template.id?.toString()}/credentials/` From 28820fbe8216565fabfc619a62405e545362e7c8 Mon Sep 17 00:00:00 2001 From: Sasa993 Date: Thu, 10 Apr 2025 10:28:39 +0200 Subject: [PATCH 2/2] Use nullish coalescing operators to make Sonar happy --- .../resources/templates/TemplatePage/TemplateLaunchWizard.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx b/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx index 2b4117f6bb..2e821dc49c 100644 --- a/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx +++ b/frontend/awx/resources/templates/TemplatePage/TemplateLaunchWizard.tsx @@ -100,8 +100,8 @@ export function LaunchTemplate({ jobType }: { jobType: string }) { error: getLaunchError, refresh: getLaunchRefresh, } = useGet(awxAPI`/${jobType}/${resourceId}/launch/`); - const error = getTemplateError || getLaunchError; - const refresh = getTemplateRefresh || getLaunchRefresh; + const error = getTemplateError ?? getLaunchError; + const refresh = getTemplateRefresh ?? getLaunchRefresh; const getJobOutputUrl = useGetJobOutputUrl(); if (error) return ;