36 lines
1.0 KiB
JavaScript
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.',
|
|
},
|
|
});
|
|
});
|