Active
Project:
Date
Version:
7.x-2.x-dev
Component:
Code
Priority:
Normal
Category:
Bug report
Assigned:
Unassigned
Reporter:
Created:
21 Apr 2013 at 08:42 UTC
Updated:
21 Apr 2013 at 08:42 UTC
For example Conditional Fields allows validation to pass for empty required fields that it has hidden, however date_repeat_field_widget_validate() will see these errors and consequent not build the repeat dates.
My fix is to only not build the repeat dates if date_repeat_field_widget_validate() generates a form error and ignore errors from other validation functions:
function date_repeat_field_widget_validate($element, &$form_state) {
...
$errors = FALSE;
if (!empty($item['rrule']) && $rrule_values['range_of_repeat'] === 'UNTIL' && empty($rrule_values['UNTIL']['datetime'])) {
switch ($instance['widget']['type']) {
case 'date_text':
case 'date_popup':
form_set_error($error_field_until . 'date', t("Missing value in 'Range of repeat'. (UNTIL).", array(), array('context' => 'Date repeat')));
break;
case 'date_select':
form_set_error($error_field_until . 'year', t("Missing value in 'Range of repeat': Year (UNTIL)", array(), array('context' => 'Date repeat')));
form_set_error($error_field_until . 'month', t("Missing value in 'Range of repeat': Month (UNTIL)", array(), array('context' => 'Date repeat')));
form_set_error($error_field_until . 'day', t("Missing value in 'Range of repeat': Day (UNTIL)", array(), array('context' => 'Date repeat')));
break;
}
$errors = TRUE;
}
$error_field_count = $error_field_base . '][rrule][count_child';
if (!empty($item['rrule']) && $rrule_values['range_of_repeat'] === 'COUNT' && empty($rrule_values['COUNT'])) {
form_set_error($error_field_count, t("Missing value in 'Range of repeat'. (COUNT).", array(), array('context' => 'Date repeat')));
$errors = TRUE;
}
if ($errors) {
return;
}
...
}