function salesforce_api_fieldmap_edit_form_submit in Salesforce Suite 6.2
Same name and namespace in other branches
- 5.2 salesforce_api/salesforce_api.admin.inc \salesforce_api_fieldmap_edit_form_submit()
- 7 salesforce_api/salesforce_api.admin.inc \salesforce_api_fieldmap_edit_form_submit()
- 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;
}
}