You are here

function salesforce_api_fieldmap_edit_form_submit in Salesforce Suite 6.2

Same name and namespace in other branches
  1. 5.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_fieldmap_edit_form_submit()
  2. 7 salesforce_api/salesforce_api.admin.inc \salesforce_api_fieldmap_edit_form_submit()
  3. 7.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_fieldmap_edit_form_submit()

FAPI submit handler for fieldmap editor

File

salesforce_api/salesforce_api.admin.inc, line 794
Contains the admin page callbacks for the Salesforce module, including forms for general settings and fieldmap administration.

Code

function salesforce_api_fieldmap_edit_form_submit($form, &$form_state) {

  // Load the fieldmap from the database.
  $map = salesforce_api_fieldmap_load($form_state['values']['fieldmap_index']);
  $map->description = $form_state['values']['description'];
  $map->fields = array();

  // Get the object definition for the target object.
  $object = salesforce_api_fieldmap_objects_load('salesforce', $map->salesforce);
  $rows = $form_state['values']['rows'];

  // Loop through all the select inputs.
  foreach ($rows as $row) {
    $source = key($row['source']);
    $target = current($row['source']);
    if (!empty($row['source'][$source . '_extra'])) {
      $map->fields[$source] = array(
        'type' => $target,
        'value' => $row['source'][$source . '_extra'],
      );
    }
    else {

      // Add the association to the fieldmap's fields array.
      $map->fields[$source] = $target;
    }
  }
  $map->automatic = 0;

  // set the automatic flag on the map
  foreach ($form_state['values']['drupal_sfapi_automatic'] as $auto) {
    $map->automatic |= $auto;
  }
  if (!empty($form_state['values']['new_field'])) {
    $field = $form_state['values']['new_field'];
    $map->fields[$field] = '';
  }

  // Save the updated fieldmap.
  salesforce_api_fieldmap_save($map);

  // In most cases, we will want to remain on this page and rebuild the form.
  $form_state['rebuild'] = TRUE;
  switch ($form_state['values']['op']) {
    case $form_state['values']['add_button']:
      drupal_set_message(t('Field added.'));
      break;
    case $form_state['values']['submit']:
      if (!empty($form_state['values']['new_field'])) {
        drupal_set_message(t('Field added.'));
      }
      else {
        drupal_set_message(t('The changes have been saved.'));
        $form_state['redirect'] = SALESFORCE_PATH_FIELDMAPS;
        $form_state['rebuild'] = FALSE;
      }
      break;
  }
}