function field_states_ui_submit in Field States UI 8
Submit function to add/edit field states.
1 string reference to 'field_states_ui_submit'
File
- ./
field_states_ui.admin.inc, line 189 - Admin UI functionality Field States UI.
Code
function field_states_ui_submit($form, FormStateInterface $form_state) {
$trigger = $form_state
->getTriggeringElement();
$field_name = $trigger['#field_name'];
$form_state
->set('plugin_settings_edit', $field_name);
// Show the add new field state form for the specified field state type.
if ($trigger['#op'] == 'add') {
$form_state
->set('field_states_ui_edit', $field_name);
}
elseif ($trigger['#op'] == 'cancel') {
$form_state
->set('field_states_ui_edit', NULL);
$form_state
->set('field_states_ui_target', NULL);
}
elseif ($trigger['#op'] == 'edit') {
$form_state
->set('field_states_ui_edit', $field_name);
$form_state
->set('field_states_ui_target', $trigger['#key']);
}
elseif ($trigger['#op'] == 'delete') {
$form_state
->set('field_states_ui_edit', 'delete');
$form_state
->set('field_states_ui_target', $trigger['#key']);
}
elseif ($trigger['#op'] == 'process_delete') {
$entity = $form_state
->getFormObject()
->getEntity();
$field = $entity
->getComponent($field_name);
unset($field['third_party_settings']['field_states_ui']['field_states'][$form_state
->get('field_states_ui_target')]);
$entity
->setComponent($field_name, $field);
$entity
->save();
$form_state
->set('field_states_ui_edit', NULL);
$form_state
->set('field_states_ui_target', NULL);
}
elseif ($trigger['#op'] == 'new') {
$entity = $form_state
->getFormObject()
->getEntity();
$field = $entity
->getComponent($field_name);
$field_state_manager = Drupal::service('plugin.manager.field_states_ui.fieldstate');
$field_state = $field_state_manager
->createInstance($trigger['#plugin']);
$field_state_data = $form_state
->getValue([
'fields',
$field_name,
'settings_edit_form',
'third_party_settings',
'field_states_ui',
'form',
'edit',
]);
$field_state
->submitConfigurationForm($form, (new FormState())
->setValues($field_state_data));
$field['third_party_settings']['field_states_ui']['field_states'][$field_state
->getUuid()] = $field_state
->getConfiguration();
$entity
->setComponent($field_name, $field);
$entity
->save();
$form_state
->set('field_states_ui_edit', NULL);
}
elseif ($trigger['#op'] == 'process_update') {
$entity = $form_state
->getFormObject()
->getEntity();
$field = $entity
->getComponent($field_name);
$field_state_manager = Drupal::service('plugin.manager.field_states_ui.fieldstate');
$target = $form_state
->get('field_states_ui_target');
$field_state = $field_state_manager
->createInstance($trigger['#plugin'], $field['third_party_settings']['field_states_ui']['field_states'][$target]);
$field_state_data = $form_state
->getValue([
'fields',
$field_name,
'settings_edit_form',
'third_party_settings',
'field_states_ui',
'form',
'edit',
]);
$field_state
->submitConfigurationForm($form, (new FormState())
->setValues($field_state_data));
$field['third_party_settings']['field_states_ui']['field_states'][$field_state
->getUuid()] = $field_state
->getConfiguration();
$entity
->setComponent($field_name, $field);
$entity
->save();
$form_state
->set('field_states_ui_edit', NULL);
$form_state
->set('field_states_ui_target', NULL);
}
$form_state
->setRebuild();
}