You are here

function hms_field_views_handler_filter_hms::value_form in HMS Field 7

Provide a simple textfield for equality

Overrides views_handler_filter_numeric::value_form

File

views/hms_field_views_handler_filter_hms.inc, line 21
Definition of hms_field_views_handler_filter_hms.

Class

hms_field_views_handler_filter_hms
Filter to handle hms fields stored as a integer.

Code

function value_form(&$form, &$form_state) {
  $input = $form_state['input'];
  parent::value_form($form, $form_state);

  // We need to set our own input values, they are special.
  $form_state['input'] = $input;
  if (!empty($form_state['exposed'])) {
    $identifier = $this->options['expose']['identifier'];
  }
  $children = element_children($form['value']);
  if (!count($children)) {
    if ($form['value']['#type'] == 'textfield') {
      $form['value']['#type'] = 'hms';
      $form['value']['#format'] = $this->options['value']['input_format'];
      if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier])) {
        $form_state['input'][$identifier] = _hms_seconds_to_formatted($this->value['value'], $this->options['value']['input_format']);
        if (empty($form_state['input'][$identifier])) {
          $form_state['input'][$identifier] = '';
        }
      }
    }
  }
  else {
    foreach ($children as $key) {
      if ($form['value'][$key]['#type'] == 'textfield') {
        $form['value'][$key]['#type'] = 'hms';
        $form['value'][$key]['#format'] = $this->options['value']['input_format'];
        if (!empty($form_state['exposed']) && !isset($form_state['input'][$identifier][$key])) {
          $form_state['input'][$identifier][$key] = _hms_seconds_to_formatted($this->value[$key], $this->options['value']['input_format']);
          if (empty($form_state['input'][$identifier][$key])) {
            $form_state['input'][$identifier][$key] = '';
          }
        }
      }
    }
  }
}