You are here

function globallink_entity_dashboard_filter_form_submit in GlobalLink Connect for Drupal 7.7

Same name and namespace in other branches
  1. 7.5 globallink_entity/globallink_entity_send.inc \globallink_entity_dashboard_filter_form_submit()
  2. 7.6 globallink_entity/globallink_entity_send.inc \globallink_entity_dashboard_filter_form_submit()

Handles submission of filter form.

File

globallink_entity/globallink_entity_send.inc, line 379

Code

function globallink_entity_dashboard_filter_form_submit($form, &$form_state) {
  module_load_include('inc', 'globallink', 'globallink');
  $op = $form_state['values']['op'];
  $filters = globallink_build_filters(FALSE);
  switch ($op) {
    case t('Filter'):
    case t('Refine'):

      // Apply every filter that has a choice selected other than 'any'.
      foreach ($filters as $filter => $options) {
        switch ($filter) {
          case 'modified-after':
            if (isset($form_state['values'][$filter]) && $form_state['values'][$filter] != '') {
              list($month, $day, $year) = explode('/', $form_state['values'][$filter]);
              $time_stamp = mktime(0, 0, 0, $month, $day, $year);
              $_SESSION['globallink_entity_filter'][$filter] = array(
                $filter,
                $time_stamp,
              );
            }
            break;
          case 'modified':
            if (isset($form_state['values'][$filter]) && $form_state['values'][$filter] != '') {
              $_SESSION['globallink_entity_filter'][$filter] = array(
                $filter,
                $form_state['values'][$filter],
              );
            }
            break;
          case 'title':
            if (isset($form_state['values'][$filter]) && $form_state['values'][$filter] != '') {
              $_SESSION['globallink_entity_filter'][$filter] = array(
                $filter,
                $form_state['values'][$filter],
              );
            }
            break;
          case 'node_parent':
            if (isset($form_state['values']['node_parent']) && $form_state['values']['node_parent'] != '') {
              $_SESSION['globallink_entity_filter']['node_parent'] = array(
                'node_parent',
                $form_state['values']['node_parent'],
              );
            }
            break;
          default:
            if ($filter == 'language_name') {
              $_SESSION['globallink_entity_source_locale'] = $form_state['values'][$filter];
            }
            if (isset($form_state['values'][$filter]) && $form_state['values'][$filter] != '[any]') {

              // Merge an array of arrays into one if necessary.
              $options = $filter == 'type' ? form_options_flatten($filters[$filter]['options']) : $filters[$filter]['options'];

              // Only accept valid selections offered on the dropdown, block bad input.
              if (isset($options[$form_state['values'][$filter]])) {
                if ($filter == 'status') {
                  $_SESSION['globallink_entity_filter'][$filter] = array(
                    $filter,
                    $form_state['values'][$filter],
                  );
                }
                else {
                  if (!isset($_SESSION['globallink_entity_filter'][$filter])) {
                    $_SESSION['globallink_entity_filter'][$filter] = array(
                      $filter,
                      $form_state['values'][$filter],
                    );
                  }
                }
              }
            }
        }
      }
      break;
    case t('Undo'):
      array_pop($_SESSION['globallink_entity_filter']);
      break;
    case t('Reset'):
      $_SESSION['globallink_entity_source_locale'] = '';
      $_SESSION['globallink_entity_filter'] = array();
      break;
    case t('Update'):
      return;
  }
  $form_state['redirect'] = 'admin/globallink-translations/dashboard/entity';
  return;
}