You are here

function date_facets_tabledrag_form_validate in Date Facets 7

Custom date range form validation.

1 string reference to 'date_facets_tabledrag_form_validate'
date_facets_form_facetapi_facet_display_form_alter in ./date_facets.admin.inc
Implements hook_form_alter().

File

./date_facets.admin.inc, line 330
Some functions for admin part of date facets.

Code

function date_facets_tabledrag_form_validate($form, &$form_state) {
  $error = FALSE;
  $temp_error = FALSE;
  foreach ($form_state['values']['ranges'] as $range_key => $range_data) {
    if ($range_data['delete']) {
      unset($form_state['values']['ranges'][$range_key]);
      continue;
    }
    foreach (array(
      'date_range_start',
      'date_range_end',
    ) as $item) {

      // If the op is NOW, we don't need to validate an amount.
      if ($range_data[$item . '_op'] != 'NOW') {
        if (empty($range_data[$item . '_amount'])) {
          $key = $item . '_amount';
          form_set_error("ranges][{$range_key}][{$key}", t('You must enter an amount.'));
          $error = TRUE;
        }
      }
    }
    foreach (array(
      'label',
      'machine_name',
    ) as $element) {
      if (empty($range_data[$element])) {
        form_set_error("ranges][{$range_key}][{$element}", t('%item is required.', array(
          '%item' => $element,
        )));
        $error = TRUE;
      }
    }
    if (!$error) {

      // If there were no validation errors, we move the date range to be keyed
      // by it's machine name.
      unset($form_state['values']['ranges'][$range_key]);
      $form_state['values']['ranges'][$range_data['machine_name']] = $range_data;
    }
  }
  return !$error;
}