You are here

function salesforce_pull_form_salesforce_settings_form_alter in Salesforce Suite 7.3

Implements hook_form_FORM_ID_alter().

File

modules/salesforce_pull/salesforce_pull.module, line 131
Pull updates from Salesforce when a Salesforce object is updated.

Code

function salesforce_pull_form_salesforce_settings_form_alter(&$form, &$form_state, $form_id) {
  $form['salesforce_pull_throttle'] = array(
    '#type' => 'textfield',
    '#title' => t('Pull throttle (seconds)'),
    '#description' => t('Number of seconds to wait between repeated salesforce pulls.<br>
      Prevents the webserver from becoming overloaded in case of too many cron runs, or webhook usage.'),
    '#default_value' => variable_get('salesforce_pull_throttle', 5),
    '#element_validate' => array(
      'element_validate_number',
    ),
  );
  $webhooks_enabled = variable_get('salesforce_pull_webhook_enable', FALSE);
  $form['salesforce_pull_webhook_enable'] = array(
    '#type' => 'checkbox',
    '#title' => t('Enable webhooks'),
    '#description' => t('Allow external applications to trigger Salesforce sync with a web request.'),
    '#default_value' => $webhooks_enabled,
  );
  $webhook_key = variable_get('salesforce_pull_webhook_key', drupal_random_key());
  $url = url('salesforce/webhook/pull', array(
    'query' => array(
      'key' => $webhook_key,
    ),
    'absolute' => TRUE,
  ));
  $form['salesforce_pull_webhook_key'] = array(
    '#type' => 'textfield',
    '#title' => t('Webhook key'),
    '#description' => t('A secret key that is required in the webhook request url (@url).<br>
      Leave blank to auto-generate a new random key.', array(
      '@url' => $url,
    )),
    '#default_value' => $webhook_key,
    '#states' => array(
      // Only show this field when the 'webhook_enable' checkbox is enabled.
      'visible' => array(
        ':input[name="salesforce_pull_webhook_enable"]' => array(
          'checked' => TRUE,
        ),
      ),
    ),
    '#element_validate' => array(
      'salesforce_pull_webhook_key_validate',
    ),
  );
  module_load_include('inc', 'salesforce_mapping', 'includes/salesforce_mapping.admin');
  $form[SALESFORCE_MERGE_RECORD] = array(
    '#type' => 'select',
    '#title' => t('Salesforce Contact Merge Object'),
    '#options' => _salesforce_mapping_get_salesforce_object_type_options($form_state),
    '#default_value' => variable_get(SALESFORCE_MERGE_RECORD, NULL),
    '#weight' => 4,
    '#description' => t('Select a Salesforce object that describes merged Salesforce Contacts to automate merging. Not seeing an object? !settings_link', array(
      '!settings_link' => l(t('Check your Salesforce object filters settings.'), 'admin/config/salesforce/settings', array(
        'fragment' => 'sf_object_filters_anchor',
      )),
    )),
  );
}