From 85572d384074681f05e065cdc08d4f7c1b8488d4 Mon Sep 17 00:00:00 2001 From: Kathleen Murtagh Date: Mon, 15 Apr 2013 20:23:59 -0700 Subject: [PATCH 1/7] Ensure mapping key fails validation when not selected and invalid on row 0 --- modules/salesforce_mapping/includes/salesforce_mapping.admin.inc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/modules/salesforce_mapping/includes/salesforce_mapping.admin.inc b/modules/salesforce_mapping/includes/salesforce_mapping.admin.inc index c26c580..2e51cf7 100644 --- a/modules/salesforce_mapping/includes/salesforce_mapping.admin.inc +++ b/modules/salesforce_mapping/includes/salesforce_mapping.admin.inc @@ -538,6 +538,12 @@ function salesforce_mapping_form_validate($form, &$form_state) { $sf_fields = $form_state['salesforce_mapping_object_' . $values['salesforce_object_type']]['fields']; $key_delta = isset($values['key']) ? $values['key'] : FALSE; + // Ensure a key value has been set. + if ($key_delta === FALSE) { + form_set_error('key', t('Field map requires at least one row has a key selected.')); + } + + // Check each field map row. foreach ($values['salesforce_field_mappings'] as $key => $mapping) { $drupal_field_type = $mapping['drupal_field']['fieldmap_type']; $field_map = salesforce_mapping_get_fieldmap_types($drupal_field_type); @@ -563,8 +569,9 @@ function salesforce_mapping_form_validate($form, &$form_state) { else { call_user_func($field_map['validation_callback'], $drupal_field, $sf_field, $mapping['direction'], $key); } + // Ensure valid SF external ID field. - if ($key_delta && $key === (int) $key_delta && !$sf_field['externalId']) { + if ($key === (int) $key_delta && !$sf_field['externalId']) { form_set_error('salesforce_field_mappings][' . $key . '][salesforce_field', t('Salesforce field %name is not configured as an external id.', array( '%name' => $mapping['salesforce_field'], -- 1.7.11.7