You are here

function sf_node_salesforce_form_submit in Salesforce Suite 6.2

Same name and namespace in other branches
  1. 5.2 sf_node/sf_node.module \sf_node_salesforce_form_submit()

File

sf_node/sf_node.module, line 596
Integrates the core node object and various node related modules with the Salesforce API.

Code

function sf_node_salesforce_form_submit($form, &$form_state) {
  switch ($form_state['values']['op']) {

    // Export the node to Salesforce.
    case t('Export node'):
    case t('Export changes to Salesforce'):
      if (sf_node_export($form_state['values']['nid'], $form_state['values']['fieldmap'], $form_state['values']['sfid'])) {
        drupal_set_message(t('Changes successfully exported to Salesforce.'));
      }
      else {
        drupal_set_message(t('An error occurred while exporting the changes to Salesforce. Check the watchdog for more information.'), 'error');
      }
      break;

    // Import changes from Salesforce.
    case t('Import changes from Salesforce'):
      if (sf_node_import($form_state['values']['sfid'], $form_state['values']['fieldmap'], $form_state['values']['nid'])) {
        drupal_set_message(t('The node has been updated with values from Salesforce.'));
      }
      else {
        drupal_set_message(t('An error occurred while importing the changes from Salesforce. Check the watchdog for more information.'), 'error');
      }
      break;
    case $form_state['values']['link']:
      if (!is_sfid($form_state['values']['sfid'])) {
        drupal_set_message(t('Invalid SFID provided.'), 'error');
        break;
      }
      salesforce_api_id_save('node', $form_state['values']['nid'], $form_state['values']['sfid'], $form_state['values']['fieldmap'], 'link');
      break;
    case $form_state['values']['unlink']:
    case t('Unlink'):
      if (!isset($form_state['storage']['confirm'])) {
        $form_state['storage']['confirm'] = TRUE;
        $form_state['rebuild'] = TRUE;
      }
      else {
        unset($form_state['storage']['confirm']);
        $node = $form_state['values']['node'];
        salesforce_api_id_unlink(array(
          'oid' => $node->nid,
          'name' => $node->salesforce->name,
        ));
        drupal_set_message(t('The node !nid has been unlinked from Salesforce !sfid.', array(
          '!nid' => $node->nid,
          '!sfid' => $node->salesforce->sfid,
        )));
      }
      break;
  }
}