private function SalesforceMappingFieldsForm::getRow in Salesforce Suite 8.4
Same name and namespace in other branches
- 5.0.x modules/salesforce_mapping_ui/src/Form/SalesforceMappingFieldsForm.php \Drupal\salesforce_mapping_ui\Form\SalesforceMappingFieldsForm::getRow()
Helper function to return an empty row for the field mapping form.
1 call to SalesforceMappingFieldsForm::getRow()
- SalesforceMappingFieldsForm::buildForm in modules/
salesforce_mapping_ui/ src/ Form/ SalesforceMappingFieldsForm.php - Form constructor.
File
- modules/
salesforce_mapping_ui/ src/ Form/ SalesforceMappingFieldsForm.php, line 169
Class
- SalesforceMappingFieldsForm
- Salesforce Mapping Fields Form.
Namespace
Drupal\salesforce_mapping_ui\FormCode
private function getRow($form, FormStateInterface $form_state, FieldPluginInterface $field_plugin = NULL) {
$values =& $form_state
->getValues();
if ($field_plugin == NULL) {
$field_type = NestedArray::getValue($values, [
'buttons',
'new_field',
]);
$field_plugin_definition = $this
->getFieldPlugin($field_type);
$configuration = [
'mapping' => $this->entity,
'id' => count(Element::children($form['field_mappings_wrapper']['field_mappings'])),
'drupal_field_type' => $field_type,
];
/** @var \Drupal\salesforce_mapping\SalesforceMappingFieldPluginInterface $field_plugin */
$field_plugin = $this->mappingFieldPluginManager
->createInstance($field_plugin_definition['id'], $configuration);
$field_mapping_plugins = $this->entity
->getFieldMappings();
$config = [];
foreach ($field_mapping_plugins as $plugin) {
$config[] = $plugin
->getConfiguration();
}
$config[] = $field_plugin
->getConfiguration();
$this->entity
->set('field_mappings', $config);
}
$row['config'] = $field_plugin
->buildConfigurationForm($form, $form_state);
$row['config']['id'] = [
'#type' => 'value',
'#value' => $field_plugin
->config('id'),
];
// @TODO implement "lock/unlock" logic here:
// @TODO convert these to AJAX operations
$operations = [
'delete' => $this
->t('Delete'),
];
$defaults = [];
$row['ops'] = [
'#title' => $this
->t('Operations'),
'#type' => 'checkboxes',
'#options' => $operations,
'#default_value' => $defaults,
'#attributes' => [
'class' => [
'narrow',
],
],
];
$row['drupal_field_type'] = [
'#type' => 'hidden',
'#value' => $field_plugin
->getPluginId(),
];
$row['#type'] = 'container';
$row['#attributes'] = [
'class' => [
'field_mapping_field',
'row',
$field_plugin
->config('id') % 2 ? 'odd' : 'even',
],
];
return $row;
}