mirror of
https://github.com/ansible/awx.git
synced 2026-03-05 18:51:06 -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:
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-error-boundary": "^3.1.3",
|
||||||
"react-router-dom": "^5.1.2",
|
"react-router-dom": "^5.1.2",
|
||||||
"react-virtualized": "^9.21.1",
|
"react-virtualized": "^9.21.1",
|
||||||
"rrule": "^2.6.4",
|
"rrule": "2.6.4",
|
||||||
"sanitize-html": "2.4.0",
|
"sanitize-html": "2.4.0",
|
||||||
"styled-components": "5.3.0"
|
"styled-components": "5.3.0"
|
||||||
},
|
},
|
||||||
@@ -20990,9 +20990,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/rrule": {
|
"node_modules/rrule": {
|
||||||
"version": "2.6.8",
|
"version": "2.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.8.tgz",
|
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.4.tgz",
|
||||||
"integrity": "sha512-cUaXuUPrz9d1wdyzHsBfT1hptKlGgABeCINFXFvulEPqh9Np9BnF3C3lrv9uO54IIr8VDb58tsSF3LhsW+4VRw==",
|
"integrity": "sha512-sLdnh4lmjUqq8liFiOUXD5kWp/FcnbDLPwq5YAc/RrN6120XOPb86Ae5zxF7ttBVq8O3LxjjORMEit1baluahA==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": "^1.10.0"
|
"tslib": "^1.10.0"
|
||||||
},
|
},
|
||||||
@@ -43726,9 +43726,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rrule": {
|
"rrule": {
|
||||||
"version": "2.6.8",
|
"version": "2.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.8.tgz",
|
"resolved": "https://registry.npmjs.org/rrule/-/rrule-2.6.4.tgz",
|
||||||
"integrity": "sha512-cUaXuUPrz9d1wdyzHsBfT1hptKlGgABeCINFXFvulEPqh9Np9BnF3C3lrv9uO54IIr8VDb58tsSF3LhsW+4VRw==",
|
"integrity": "sha512-sLdnh4lmjUqq8liFiOUXD5kWp/FcnbDLPwq5YAc/RrN6120XOPb86Ae5zxF7ttBVq8O3LxjjORMEit1baluahA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"luxon": "^1.21.3",
|
"luxon": "^1.21.3",
|
||||||
"tslib": "^1.10.0"
|
"tslib": "^1.10.0"
|
||||||
|
|||||||
@@ -29,7 +29,7 @@
|
|||||||
"react-error-boundary": "^3.1.3",
|
"react-error-boundary": "^3.1.3",
|
||||||
"react-router-dom": "^5.1.2",
|
"react-router-dom": "^5.1.2",
|
||||||
"react-virtualized": "^9.21.1",
|
"react-virtualized": "^9.21.1",
|
||||||
"rrule": "^2.6.4",
|
"rrule": "2.6.4",
|
||||||
"sanitize-html": "2.4.0",
|
"sanitize-html": "2.4.0",
|
||||||
"styled-components": "5.3.0"
|
"styled-components": "5.3.0"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -30,6 +30,13 @@ import {
|
|||||||
import FrequencyDetailSubform from './FrequencyDetailSubform';
|
import FrequencyDetailSubform from './FrequencyDetailSubform';
|
||||||
import SchedulePromptableFields from './SchedulePromptableFields';
|
import SchedulePromptableFields from './SchedulePromptableFields';
|
||||||
import DateTimePicker from './DateTimePicker';
|
import DateTimePicker from './DateTimePicker';
|
||||||
|
import buildRuleObj from './buildRuleObj';
|
||||||
|
|
||||||
|
const NUM_DAYS_PER_FREQUENCY = {
|
||||||
|
week: 7,
|
||||||
|
month: 31,
|
||||||
|
year: 365,
|
||||||
|
};
|
||||||
|
|
||||||
const generateRunOnTheDay = (days = []) => {
|
const generateRunOnTheDay = (days = []) => {
|
||||||
if (
|
if (
|
||||||
@@ -555,6 +562,19 @@ function ScheduleForm({
|
|||||||
startDate,
|
startDate,
|
||||||
} = values;
|
} = 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 (
|
if (
|
||||||
end === 'onDate' &&
|
end === 'onDate' &&
|
||||||
DateTime.fromISO(startDate) >= DateTime.fromISO(endDate)
|
DateTime.fromISO(startDate) >= DateTime.fromISO(endDate)
|
||||||
@@ -569,7 +589,6 @@ function ScheduleForm({
|
|||||||
) {
|
) {
|
||||||
errors.runOn = t`Please select a day number between 1 and 31.`;
|
errors.runOn = t`Please select a day number between 1 and 31.`;
|
||||||
}
|
}
|
||||||
|
|
||||||
return errors;
|
return errors;
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user