diff --git a/awx/ui_next/src/components/Schedule/Schedule.jsx b/awx/ui_next/src/components/Schedule/Schedule.jsx
index a725215029..4c1a631769 100644
--- a/awx/ui_next/src/components/Schedule/Schedule.jsx
+++ b/awx/ui_next/src/components/Schedule/Schedule.jsx
@@ -25,6 +25,7 @@ function Schedule({
resource,
launchConfig,
surveyConfig,
+ hasDaysToKeepField,
}) {
const { scheduleId } = useParams();
@@ -96,13 +97,6 @@ function Schedule({
showCardHeader = false;
}
- // For some management jobs that delete data, we want to provide an additional
- // field on the scheduler for configuring the number of days to retain.
- const hasDaysToKeepField = [
- 'cleanup_activitystream',
- 'cleanup_jobs',
- ].includes(schedule?.summary_fields?.unified_job_template?.job_type);
-
return (
<>
{showCardHeader && }
diff --git a/awx/ui_next/src/components/Schedule/ScheduleAdd/ScheduleAdd.jsx b/awx/ui_next/src/components/Schedule/ScheduleAdd/ScheduleAdd.jsx
index 81f42f5b72..2c8836f00e 100644
--- a/awx/ui_next/src/components/Schedule/ScheduleAdd/ScheduleAdd.jsx
+++ b/awx/ui_next/src/components/Schedule/ScheduleAdd/ScheduleAdd.jsx
@@ -15,7 +15,14 @@ import mergeExtraVars from '../../../util/prompt/mergeExtraVars';
import getSurveyValues from '../../../util/prompt/getSurveyValues';
import { getAddedAndRemoved } from '../../../util/lists';
-function ScheduleAdd({ i18n, resource, apiModel, launchConfig, surveyConfig }) {
+function ScheduleAdd({
+ i18n,
+ resource,
+ apiModel,
+ launchConfig,
+ surveyConfig,
+ hasDaysToKeepField,
+}) {
const [formSubmitError, setFormSubmitError] = useState(null);
const history = useHistory();
const location = useLocation();
@@ -70,13 +77,22 @@ function ScheduleAdd({ i18n, resource, apiModel, launchConfig, surveyConfig }) {
try {
const rule = new RRule(buildRuleObj(values, i18n));
+ const requestData = {
+ ...submitValues,
+ rrule: rule.toString().replace(/\n/g, ' '),
+ };
+
+ if (Object.keys(values).includes('daysToKeep')) {
+ if (requestData.extra_data) {
+ requestData.extra_data.days = values.daysToKeep;
+ } else {
+ requestData.extra_data = JSON.stringify({ days: values.daysToKeep });
+ }
+ }
const {
data: { id: scheduleId },
- } = await apiModel.createSchedule(resource.id, {
- ...submitValues,
- rrule: rule.toString().replace(/\n/g, ' '),
- });
+ } = await apiModel.createSchedule(resource.id, requestData);
if (credentials?.length > 0) {
await Promise.all(
added.map(({ id: credentialId }) =>
@@ -94,6 +110,7 @@ function ScheduleAdd({ i18n, resource, apiModel, launchConfig, surveyConfig }) {
history.push(`${pathRoot}schedules`)}
handleSubmit={handleSubmit}
submitError={formSubmitError}
diff --git a/awx/ui_next/src/components/Schedule/Schedules.jsx b/awx/ui_next/src/components/Schedule/Schedules.jsx
index 22f429dd29..f6785d8fa8 100644
--- a/awx/ui_next/src/components/Schedule/Schedules.jsx
+++ b/awx/ui_next/src/components/Schedule/Schedules.jsx
@@ -16,10 +16,18 @@ function Schedules({
}) {
const match = useRouteMatch();
+ // For some management jobs that delete data, we want to provide an additional
+ // field on the scheduler for configuring the number of days to retain.
+ const hasDaysToKeepField = [
+ 'cleanup_activitystream',
+ 'cleanup_jobs',
+ ].includes(resource?.job_type);
+
return (