You are here

function elasticsearch_connector_search_api_form_alter in Elasticsearch Connector 7.2

Same name and namespace in other branches
  1. 7.5 modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.module \elasticsearch_connector_search_api_form_alter()
  2. 7 modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.module \elasticsearch_connector_search_api_form_alter()

Implements hook_form_alter().

File

modules/elasticsearch_connector_search_api/elasticsearch_connector_search_api.module, line 93
Provides a elasticsearch-based service class for the Search API.

Code

function elasticsearch_connector_search_api_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'search_api_admin_add_index') {
    elasticsearch_connector_search_api_attach_ajax_callback($form);
    if (isset($form_state['values']) && !empty($form_state['values'])) {
      $add_options = elasticsearch_connector_search_api_elasticsearch_server_enabled($form_state['values']['server']);
      if ($add_options != FALSE) {
        elasticsearch_connector_search_api_return_form_options($form, $form_state, array(), 'add');
      }
    }
  }
  elseif ($form_id == 'search_api_admin_index_edit') {
    $default_values = $form_state['index']->options;
    elasticsearch_connector_search_api_attach_ajax_callback($form);
    if (!isset($form_state['values'])) {
      if (isset($form_state['build_info']['args']) && !empty($form_state['build_info']['args'])) {
        $index_obj = reset($form_state['build_info']['args']);
        $add_options = elasticsearch_connector_search_api_elasticsearch_server_enabled($index_obj->server);
        if ($add_options != FALSE) {
          elasticsearch_connector_search_api_return_form_options($form, $form_state, $default_values, 'edit');
        }
      }
    }
    else {
      $add_options = elasticsearch_connector_search_api_elasticsearch_server_enabled($form_state['values']['server']);
      if ($add_options != FALSE) {
        elasticsearch_connector_search_api_return_form_options($form, $form_state, $default_values, 'edit');
      }
    }
  }
  if ('search_api_admin_index_workflow' == $form_id) {

    // Remove all processors from the form for this server.
    if (elasticsearch_connector_search_api_elasticsearch_server_enabled($form_state['index']->server)) {
      foreach (element_children($form['processors']['status']) as $key) {
        if (strpos($key, 'search_api_elasticsearch') === FALSE) {
          $form['processors']['status'][$key]['#default'] = 0;
          $form['processors']['status'][$key]['#value'] = 0;
          $form['processors']['status'][$key]['#disabled'] = TRUE;
        }
      }
    }
  }
}