You are here

function salesforce_api_admin_object in Salesforce Suite 6.2

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

Ask salesforce for a list of objects and display a checklist for the user. Based on user selection, set up or tear down cached/synched Salesforce data. @TODO make this more user friendly. At the moment it's possible for an admin user to blow away their entire local Salesforce cache with a few clicks. This is not necessarily desirable.

@author aaron

Parameters

string $form_state:

Return value

void

1 string reference to 'salesforce_api_admin_object'
salesforce_api_menu in salesforce_api/salesforce_api.module
Implementation of hook_menu().

File

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

Code

function salesforce_api_admin_object(&$form_state) {
  $response = salesforce_api_describeGlobal();
  if (empty($response->types)) {
    drupal_set_message(t('There was an error retrieving the list of Salesforce objects. Please verify that your Salesforce instance is properly configured.'), 'error');
    return;
  }
  $defaults = array_keys(salesforce_api_fieldmap_objects());
  $options = $disabled = array();
  foreach ($response->types as $obj) {
    $options[$obj->name] = $obj->name . ' (' . $obj->label . ')';
  }

  // Disable any SF Object types currently in use by fieldmap(s).
  $result = db_query('SELECT DISTINCT salesforce FROM {salesforce_field_map}');
  $fieldmaps = salesforce_api_salesforce_field_map_load_all();
  foreach ($fieldmaps as $map) {
    $disabled[$map->salesforce] = $map->salesforce;
  }
  $fields = array(
    'objects' => array(
      '#type' => 'checkboxes',
      '#title' => 'Object Name (Object Label)',
      '#description' => 'Check the Salesforce objects you would like to synchronize locally.',
      '#options' => $options,
      '#default_value' => $defaults,
    ),
    'disabled_types' => array(
      '#type' => 'value',
      '#value' => $disabled,
    ),
    '#theme' => 'salesforce_api_object_options',
    'submit' => array(
      '#type' => 'submit',
      '#value' => 'Save',
    ),
  );
  return $fields;
}