You are here

function oa_core_form_views_content_views_panes_content_type_edit_form_alter in Open Atrium Core 7.2

Implements hook_form_FORM_ID_alter().

File

./oa_core.module, line 1169

Code

function oa_core_form_views_content_views_panes_content_type_edit_form_alter(&$form, &$form_state, $form_id) {
  $conf = $form_state['conf'];
  $pane = $form_state['pane'];

  // Add in the Active options
  // @todo be a bit smarter on this, check type of field.
  $group = oa_core_get_space_context();
  if (isset($form['exposed']['filter-oa_parent_space_target_id']['oa_parent_space_target_id'])) {
    $form['exposed']['filter-oa_parent_space_target_id']['oa_parent_space_target_id']['#options'] = array(
      '' => t('- Active Group -'),
    ) + $form['exposed']['filter-oa_parent_space_target_id']['oa_parent_space_target_id']['#options'];
    if (!isset($pane->configuration['exposed']['oa_parent_space_target_id'])) {
      $pane->configuration['exposed']['oa_parent_space_target_id'] = '';
    }
  }
  if (isset($form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id'])) {
    if (!isset($pane->configuration['exposed']['og_group_ref_target_id'])) {
      $pane->configuration['exposed']['og_group_ref_target_id'] = '';
    }
    $form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id_mine'] = array(
      '#title' => t('Limit to groups of current user'),
      '#type' => 'checkbox',
      '#default_value' => !empty($conf['exposed']['og_group_ref_target_id_mine']),
      '#parents' => array(
        'exposed',
        'og_group_ref_target_id_mine',
      ),
    );

    // Replace autocomplete path to one that returns Current Space as an option.
    if (isset($form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id']['#autocomplete_path'])) {
      $form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id']['#autocomplete_path'] = str_replace('oacoreselect2widget', 'oacoreselect2widgetpanes', $form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id']['#autocomplete_path']);
      $form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id']['#oa_core_in_pane_config'] = TRUE;
    }
    $form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id']['#states'] = array(
      'visible' => array(
        ':input[name="exposed[og_group_ref_target_id_mine]"]' => array(
          'checked' => FALSE,
        ),
      ),
    );
    $form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id']['#after_build'][] = 'oa_core_adjust_og_group_ref_for_select2';
  }
  if (isset($form['exposed']['filter-oa_section_ref_target_id']['oa_section_ref_target_id'])) {

    // Add a process that change ajax path so can return multiple changes.
    if (isset($form['exposed']['filter-og_group_ref_target_id']['og_group_ref_target_id'])) {
      $form['buttons']['#process'] = array(
        'oa_core_form_views_content_views_panes_content_type_edit_process',
        'form_process_actions',
        'form_process_container',
      );
    }

    // Refresh the sections with currently selected group if not currently active group but not empty.
    if (!empty($pane->configuration['exposed']['og_group_ref_target_id']) && !isset($_POST['exposed']['og_group_ref_target_id']) && $pane->configuration['exposed']['og_group_ref_target_id'] != $group && is_numeric($pane->configuration['exposed']['og_group_ref_target_id'])) {
      _oa_sections_get_current_selected_space(NULL, $pane->configuration['exposed']['og_group_ref_target_id']);
    }
    $form['exposed']['filter-oa_section_ref_target_id']['oa_section_ref_target_id']['#after_build'][] = 'oa_core_refresh_section_values';
    $form['exposed']['filter-oa_section_ref_target_id']['oa_section_ref_target_id']['#options'] = array(
      '' => t('- Active Section -'),
    ) + $form['exposed']['filter-oa_section_ref_target_id']['oa_section_ref_target_id']['#options'];
    if (!isset($pane->configuration['exposed']['oa_section_ref_target_id'])) {
      $pane->configuration['exposed']['oa_section_ref_target_id'] = '';
    }
  }
  if (!empty($form['exposed']['filter-uid'])) {
    $form['exposed']['filter-uid']['oa_core_default_to_current_user'] = array(
      '#type' => 'checkbox',
      '#title' => t('Default to current user'),
      '#parents' => array(
        'exposed',
        'oa_core_default_to_current_user',
      ),
      '#default_value' => !empty($conf['exposed']['oa_core_default_to_current_user']),
    );
    $form['exposed']['filter-uid']['uid']['#states'] = array(
      'visible' => array(
        ':input[name="exposed[oa_core_default_to_current_user]"]' => array(
          'checked' => FALSE,
        ),
      ),
    );
  }

  // Set exposed form to be disabled at first.
  if (isset($form['show_exposed_form'])) {
    $form['show_exposed_form']['#default_value'] = isset($form_state['conf']['show_exposed_form']) ? $form_state['conf']['show_exposed_form'] : FALSE;
    $form['display_settings']['show_exposed_form'] = $form['show_exposed_form'];
    $form['display_settings']['show_exposed_form']['#weight'] = 10;
    unset($form['show_exposed_form']);
    if (!isset($pane->configuration['show_exposed_form'])) {
      $pane->configuration['show_exposed_form'] = FALSE;
    }
  }
}