mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 10:00:01 -03:30
Merge pull request #10898 from kialam/fix-10718-null-datetime
Validate that start/end datetime creates at least 1 schedule.
This commit is contained in:
commit
c6a63d01db
14
awx/ui/package-lock.json
generated
14
awx/ui/package-lock.json
generated
@ -29,7 +29,7 @@
|
||||
"react-error-boundary": "^3.1.3",
|
||||
"react-router-dom": "^5.1.2",
|
||||
"react-virtualized": "^9.21.1",
|
||||
"rrule": "^2.6.4",
|
||||
"rrule": "2.6.4",
|
||||
"sanitize-html": "2.4.0",
|
||||
"styled-components": "5.3.0"
|
||||
},
|
||||
@ -20990,9 +20990,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/rrule": {
|
||||
"version": "2.6.8",
|
||||
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.8.tgz",
|
||||
"integrity": "sha512-cUaXuUPrz9d1wdyzHsBfT1hptKlGgABeCINFXFvulEPqh9Np9BnF3C3lrv9uO54IIr8VDb58tsSF3LhsW+4VRw==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.4.tgz",
|
||||
"integrity": "sha512-sLdnh4lmjUqq8liFiOUXD5kWp/FcnbDLPwq5YAc/RrN6120XOPb86Ae5zxF7ttBVq8O3LxjjORMEit1baluahA==",
|
||||
"dependencies": {
|
||||
"tslib": "^1.10.0"
|
||||
},
|
||||
@ -43726,9 +43726,9 @@
|
||||
}
|
||||
},
|
||||
"rrule": {
|
||||
"version": "2.6.8",
|
||||
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.8.tgz",
|
||||
"integrity": "sha512-cUaXuUPrz9d1wdyzHsBfT1hptKlGgABeCINFXFvulEPqh9Np9BnF3C3lrv9uO54IIr8VDb58tsSF3LhsW+4VRw==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.4.tgz",
|
||||
"integrity": "sha512-sLdnh4lmjUqq8liFiOUXD5kWp/FcnbDLPwq5YAc/RrN6120XOPb86Ae5zxF7ttBVq8O3LxjjORMEit1baluahA==",
|
||||
"requires": {
|
||||
"luxon": "^1.21.3",
|
||||
"tslib": "^1.10.0"
|
||||
|
||||
@ -29,7 +29,7 @@
|
||||
"react-error-boundary": "^3.1.3",
|
||||
"react-router-dom": "^5.1.2",
|
||||
"react-virtualized": "^9.21.1",
|
||||
"rrule": "^2.6.4",
|
||||
"rrule": "2.6.4",
|
||||
"sanitize-html": "2.4.0",
|
||||
"styled-components": "5.3.0"
|
||||
},
|
||||
|
||||
@ -30,6 +30,13 @@ import {
|
||||
import FrequencyDetailSubform from './FrequencyDetailSubform';
|
||||
import SchedulePromptableFields from './SchedulePromptableFields';
|
||||
import DateTimePicker from './DateTimePicker';
|
||||
import buildRuleObj from './buildRuleObj';
|
||||
|
||||
const NUM_DAYS_PER_FREQUENCY = {
|
||||
week: 7,
|
||||
month: 31,
|
||||
year: 365,
|
||||
};
|
||||
|
||||
const generateRunOnTheDay = (days = []) => {
|
||||
if (
|
||||
@ -555,6 +562,19 @@ function ScheduleForm({
|
||||
startDate,
|
||||
} = values;
|
||||
|
||||
if (
|
||||
end === 'onDate' &&
|
||||
DateTime.fromISO(endDate)
|
||||
.diff(DateTime.fromISO(startDate), 'days')
|
||||
.toObject().days < NUM_DAYS_PER_FREQUENCY[frequency]
|
||||
) {
|
||||
const rule = new RRule(buildRuleObj(values));
|
||||
if (rule.all().length === 0) {
|
||||
errors.startDate = t`Selected date range must have at least 1 schedule occurrence.`;
|
||||
errors.endDate = t`Selected date range must have at least 1 schedule occurrence.`;
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
end === 'onDate' &&
|
||||
DateTime.fromISO(startDate) >= DateTime.fromISO(endDate)
|
||||
@ -569,7 +589,6 @@ function ScheduleForm({
|
||||
) {
|
||||
errors.runOn = t`Please select a day number between 1 and 31.`;
|
||||
}
|
||||
|
||||
return errors;
|
||||
}}
|
||||
>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user