function FieldConfigEditForm::actions

Same name in other branches
  1. 9 core/modules/field_ui/src/Form/FieldConfigEditForm.php \Drupal\field_ui\Form\FieldConfigEditForm::actions()
  2. 8.9.x core/modules/field_ui/src/Form/FieldConfigEditForm.php \Drupal\field_ui\Form\FieldConfigEditForm::actions()
  3. 10 core/modules/field_ui/src/Form/FieldConfigEditForm.php \Drupal\field_ui\Form\FieldConfigEditForm::actions()

Overrides EntityForm::actions

File

core/modules/field_ui/src/Form/FieldConfigEditForm.php, line 301

Class

FieldConfigEditForm
Provides a form for the field settings form.

Namespace

Drupal\field_ui\Form

Code

protected function actions(array $form, FormStateInterface $form_state) {
    $actions = parent::actions($form, $form_state);
    $actions['submit']['#value'] = $this->entity
        ->isNew() ? $this->t('Save') : $this->t('Save settings');
    $actions['submit']['#ajax'] = [
        'callback' => '::ajaxSubmit',
    ];
    if ($this->entity
        ->isNew()) {
        $entity_type = $this->entity
            ->getTargetEntityTypeId();
        $route_parameters = [
            'field_name' => $this->entity
                ->getName(),
            'entity_type' => $entity_type,
        ] + FieldUI::getRouteBundleParameter($this->entityTypeManager
            ->getDefinition($entity_type), $this->entity
            ->getTargetBundle());
        $actions['back'] = [
            '#type' => 'link',
            '#weight' => 1,
            '#title' => $this->t('Change field type'),
            '#limit_validation_errors' => [],
            '#attributes' => [
                'class' => [
                    'button',
                    'use-ajax',
                ],
                'data-dialog-type' => 'modal',
                'data-dialog-options' => Json::encode([
                    'width' => '1100',
                ]),
            ],
            '#url' => Url::fromRoute("field_ui.field_storage_config_reset_add_{$entity_type}", $route_parameters),
        ];
    }
    if (!$this->entity
        ->isNew()) {
        $target_entity_type = $this->entityTypeManager
            ->getDefinition($this->entity
            ->getTargetEntityTypeId());
        $route_parameters = [
            'field_config' => $this->entity
                ->id(),
        ] + FieldUI::getRouteBundleParameter($target_entity_type, $this->entity
            ->getTargetBundle());
        $url = new Url('entity.field_config.' . $target_entity_type->id() . '_field_delete_form', $route_parameters);
        $actions['delete'] = [
            '#type' => 'link',
            '#title' => $this->t('Delete'),
            '#url' => $url,
            '#access' => $this->entity
                ->access('delete'),
            '#attributes' => [
                'class' => [
                    'button',
                    'button--danger',
                    'use-ajax',
                ],
                'data-dialog-type' => 'modal',
                'data-dialog-options' => Json::encode([
                    'width' => '1100',
                ]),
            ],
        ];
    }
    return $actions;
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.