Files
piratepoet/assets/js/src/parsley-validators.jsx
2021-11-03 13:34:35 +01:00

36 lines
1.0 KiB
JavaScript

import jQuery from 'jquery';
import Parsley from 'parsleyjs';
jQuery(($) => {
Parsley.addValidator('scheduledAt', {
requirementType: 'string',
validateString: (value, error) => {
const maxYears = 5;
const hoursInYear = 8760;
const daysInYear = 365;
const weeksInYear = 52;
const selectType = $('select[name="afterTimeType"],select#scheduling_time_interval');
const afterTimeType = selectType.val();
let isValid = true;
if (afterTimeType === 'hours' && (hoursInYear * maxYears) < value) {
isValid = false;
}
if (afterTimeType === 'days' && (daysInYear * maxYears) < value) {
isValid = false;
}
if (afterTimeType === 'weeks' && (weeksInYear * maxYears) < value) {
isValid = false;
}
if (!isValid) {
return $.Deferred().reject(error);
}
return true;
},
messages: {
en: 'An email can only be scheduled up to 5 years in the future. Please choose a shorter period.',
},
});
});