diff --git a/awx/ui/src/components/Schedule/shared/ScheduleForm.js b/awx/ui/src/components/Schedule/shared/ScheduleForm.js index 43407d2737c2..8fbf83791cf2 100644 --- a/awx/ui/src/components/Schedule/shared/ScheduleForm.js +++ b/awx/ui/src/components/Schedule/shared/ScheduleForm.js @@ -20,6 +20,7 @@ import UnsupportedScheduleForm from './UnsupportedScheduleForm'; import parseRuleObj, { UnsupportedRRuleError } from './parseRuleObj'; import buildRuleObj from './buildRuleObj'; import buildRuleSet from './buildRuleSet'; +import mergeArraysByCredentialType from './mergeArraysByCredentialType'; const NUM_DAYS_PER_FREQUENCY = { week: 7, @@ -350,6 +351,12 @@ function ScheduleForm({ startDate: currentDate, startTime: time, timezone: schedule.timezone || now.zoneName, + credentials: mergeArraysByCredentialType( + resourceDefaultCredentials, + credentials + ), + labels: originalLabels.current, + instance_groups: originalInstanceGroups.current, }; if (hasDaysToKeepField) { diff --git a/awx/ui/src/components/Schedule/shared/mergeArraysByCredentialType.js b/awx/ui/src/components/Schedule/shared/mergeArraysByCredentialType.js new file mode 100644 index 000000000000..13935f930e51 --- /dev/null +++ b/awx/ui/src/components/Schedule/shared/mergeArraysByCredentialType.js @@ -0,0 +1,18 @@ +export default function mergeArraysByCredentialType( + defaultCredentials = [], + overrides = [] +) { + const mergedArray = [...defaultCredentials]; + + overrides.forEach((override) => { + const index = mergedArray.findIndex( + (defaultCred) => defaultCred.credential_type === override.credential_type + ); + if (index !== -1) { + mergedArray.splice(index, 1); + } + mergedArray.push(override); + }); + + return mergedArray; +}