You are here

public function ItemForm::targetEntityTypeCallback in Business Rules 8

Same name and namespace in other branches
  1. 2.x src/Form/ItemForm.php \Drupal\business_rules\Form\ItemForm::targetEntityTypeCallback()

Show the list of bundles according the selected Entity Type.

Parameters

array $form: The form array.

\Drupal\Core\Form\FormStateInterface $form_state: The form state object.

Return value

\Drupal\Core\Ajax\AjaxResponse The AjaxResponse.

File

src/Form/ItemForm.php, line 540

Class

ItemForm
Base class for Business rules item.

Namespace

Drupal\business_rules\Form

Code

public function targetEntityTypeCallback(array &$form, FormStateInterface $form_state) {
  $selected_entity_type = $form_state
    ->getValue('target_entity_type');
  $target_bundle =& $form['settings']['context']['target_bundle'];
  $target_bundle['#options'] = $this->util
    ->getBundles($selected_entity_type);
  $target_bundle['#default_value'] = '';
  $target_bundle['#ajax'] = [
    'callback' => [
      $this,
      'targetBundleCallback',
    ],
  ];
  $field =& $form['settings']['field'];
  $field['#options'] = [
    '' => t('-Select-'),
  ];
  $field['#default_value'] = '';
  $response = new AjaxResponse();
  $response
    ->addCommand(new ReplaceCommand('#target_bundle-wrapper', $target_bundle));
  $response
    ->addCommand(new ReplaceCommand('#field_selector-wrapper', $field));
  $form_state
    ->setRebuild();
  return $response;
}