diff -urpN salesforce_api/js/sf_fieldmap_options.js new_salesforce_api/js/sf_fieldmap_options.js --- salesforce_api/js/sf_fieldmap_options.js 1970-01-01 01:00:00.000000000 +0100 +++ new_salesforce_api/js/sf_fieldmap_options.js 2009-08-12 16:25:14.000000000 +0100 @@ -0,0 +1,12 @@ +$(document).ready(function() { + $(".hidden").hide(); +}); + +$.fn.sf_fieldmap_options = function(fieldname) { + var fielddiv = '#' + fieldname + '-fixed-hidden'; + if($(this).val() == 'fixed') { + $(fielddiv).show(); + } else { + $(fielddiv).hide(); + } +} \ No newline at end of file diff -urpN salesforce_api/salesforce_api.admin.css new_salesforce_api/salesforce_api.admin.css --- salesforce_api/salesforce_api.admin.css 2009-04-25 06:59:20.000000000 +0100 +++ new_salesforce_api/salesforce_api.admin.css 2009-08-12 12:30:21.000000000 +0100 @@ -3,3 +3,15 @@ .source-cell label { display: none; } + +.target-cell { + width: 300px; +} + +.fieldmap-fixed-text, .form-item { + display:inline; +} + +.fieldmap-fixed-text label { + display: inline; +} \ No newline at end of file diff -urpN salesforce_api/salesforce_api.admin.inc new_salesforce_api/salesforce_api.admin.inc --- salesforce_api/salesforce_api.admin.inc 2009-08-11 15:27:40.000000000 +0100 +++ new_salesforce_api/salesforce_api.admin.inc 2009-08-12 14:17:05.000000000 +0100 @@ -281,6 +281,10 @@ function salesforce_api_fieldmap_delete_ // Displays the edit form for adding field associations to a fieldmap. function salesforce_api_fieldmap_edit_form(&$form_state, $fieldmap) { + + $path = drupal_get_path("module", "salesforce_api"); + drupal_add_js($path ."/js/sf_fieldmap_options.js"); + // Load the fieldmap from the database. $map = salesforce_api_fieldmap_load($fieldmap); @@ -349,16 +353,33 @@ function salesforce_api_fieldmap_edit_fo $row = array( 'target' => array('#value' => $value['label'] . $required), ); + + // adding fixed option + $options = salesforce_api_fieldmap_field_options($source); + $options['fixed'] = t('Fixed value'); + $fixed = (isset($map['fields'][$key]['type']) && $map['fields'][$key]['type'] == 'fixed') ? TRUE : FALSE; + $style = $fixed ? '' : ' hidden'; // Add the select list for the associated target field. $row['source'][$key] = array( '#type' => 'select', '#title' => $value['label'], - '#options' => salesforce_api_fieldmap_field_options($source), - '#default_value' => $map['fields'][$key], + '#options' => $options, + '#default_value' => $fixed ? $map['fields'][$key]['type'] : $map['fields'][$key], '#required' => $type == 'required', + '#attributes' => array('onchange' => 'javascript:$(this).sf_fieldmap_options("'.$key.'")') ); - + $row['source'][$key ."_fixed"] = array( + '#type' => 'textfield', + '#title' => t('fixed value'), + '#default_value' => $fixed ? $map['fields'][$key]['value'] : '', + '#size' => 20, + '#maxlength' => 128, + '#required' => FALSE, + '#prefix' => '
', + '#suffix' => '
' + ); + // Add the row to the correct rows array. $rows[$type][] = $row; } @@ -392,8 +413,11 @@ function salesforce_api_fieldmap_edit_fo // Loop through all the fields on the object. foreach (array_keys($object['fields']) as $field) { + if ($form_state['values'][$field] == 'fixed') { + if(!empty($form_state['values'][$field .'_fixed'])) $map['fields'][$field] = array("type" => 'fixed', "value" => $form_state['values'][$field .'_fixed']); + } // If a field has been mapped to this field on the form... - if (!empty($form_state['values'][$field])) { + elseif (!empty($form_state['values'][$field])) { // Add the association to the fieldmap's fields array. $map['fields'][$field] = $form_state['values'][$field]; } @@ -422,7 +446,7 @@ function theme_salesforce_api_fieldmap_e foreach (element_children($form['rows']) as $element) { $rows[] = array( - drupal_render($form['rows'][$element]['target']), + array('data' => drupal_render($form['rows'][$element]['target']), 'class' => 'target-cell'), array('data' => drupal_render($form['rows'][$element]['source']), 'class' => 'source-cell'), ); } diff -urpN salesforce_api/salesforce_api.module new_salesforce_api/salesforce_api.module --- salesforce_api/salesforce_api.module 2009-08-11 16:09:12.000000000 +0100 +++ new_salesforce_api/salesforce_api.module 2009-08-12 12:39:59.000000000 +0100 @@ -552,8 +552,12 @@ function salesforce_api_fieldmap_export_ // Loop through the fields on the fieldmap. foreach ($map['fields'] as $key => $value) { + // allow fixed values + if (is_array($map['fields'][$key]) && $map['fields'][$key]['type'] == 'fixed' && !empty($map['fields'][$key]['value'])) { + $object->$key = $map['fields'][$key]['value']; + } // If a handler is specified for retrieving a value for the source field... - if (isset($source_object['fields'][$value]['export'])) { + elseif (isset($source_object['fields'][$value]['export'])) { // Get the value for the field from the handler function. $object->$key = $source_object['fields'][$value]['export']($source, $value); }