You are here

function composite_views_filter_config_item_form_submit in Composite Views Filter 7

Submit handler for views_ui_config_item_form().

1 string reference to 'composite_views_filter_config_item_form_submit'
composite_views_filter_form_views_ui_config_item_form_alter in ./composite_views_filter.module
Implements hook_form_FORM_ID_alter() for views_ui_config_item_form().

File

./composite_views_filter.module, line 76

Code

function composite_views_filter_config_item_form_submit($form, &$form_state) {
  $view = $form_state['view'];
  $view
    ->set_display($form_state['display_id']);
  $view
    ->init_handlers();
  if ($composite_views_filters = _composite_views_filter_view_has_composite_filters($view)) {
    $filter_id = $form_state['id'];
    $group = $form_state['values']['options']['composite_views_filter_group'];

    // Unset option.
    foreach ($composite_views_filters as $filter_handler) {
      unset($filter_handler->options['composite_views_filter']['classification'][$filter_id]);
    }

    // Set option.
    if ($group) {
      foreach ($composite_views_filters as $filter_handler) {
        $groups = $filter_handler
          ->get_groups();
        if (isset($groups[$group])) {
          $filter_handler->options['composite_views_filter']['classification'][$filter_id] = $group;
          break;
        }
      }
    }

    // Manual save. Not perfect, but probably the simplest way to save one handler
    // in another's submit.
    // @see views_ui_config_item_form_submit()
    foreach ($composite_views_filters as $filter_handler) {
      $view
        ->set_item($form_state['display_id'], $form_state['type'], $filter_handler->options['id'], $filter_handler->options);
    }
    views_ui_cache_set($view);
  }
}