You are here

public function SalesforceMappingFieldsForm::submitForm in Salesforce Suite 8.4

Same name and namespace in other branches
  1. 5.0.x modules/salesforce_mapping_ui/src/Form/SalesforceMappingFieldsForm.php \Drupal\salesforce_mapping_ui\Form\SalesforceMappingFieldsForm::submitForm()

Submit handler.

Overrides EntityForm::submitForm

File

modules/salesforce_mapping_ui/src/Form/SalesforceMappingFieldsForm.php, line 264

Class

SalesforceMappingFieldsForm
Salesforce Mapping Fields Form.

Namespace

Drupal\salesforce_mapping_ui\Form

Code

public function submitForm(array &$form, FormStateInterface $form_state) {
  parent::submitForm($form, $form_state);

  // Need to transform the schema slightly to remove the "config" dereference.
  // Also trigger submit handlers on plugins.
  $form_state
    ->unsetValue([
    'buttons',
    'field_type',
    'ops',
  ]);
  $values =& $form_state
    ->getValues();
  foreach ($values['field_mappings'] as $i => &$value) {

    // Pass submit values to plugin submit handler.
    $field_plugin = $this->entity
      ->getFieldMapping($value);
    $sub_form_state = SubformState::createForSubform($form['field_mappings_wrapper']['field_mappings'][$i], $form, $form_state);
    $field_plugin
      ->submitConfigurationForm($form['field_mappings_wrapper']['field_mappings'][$i], $sub_form_state);
    $value = $value + $value['config'] + [
      'id' => $i,
    ];
    unset($value['config'], $value['ops']);
  }
  $this->entity
    ->set('field_mappings', $values['field_mappings']);
  parent::submitForm($form, $form_state);
}