public function ViewfieldWidgetSelect::ajaxGetDisplayOptions in Viewfield 8.3
Ajax callback to retrieve display IDs.
Parameters
array $form: The form from which the display IDs are being requested.
\Drupal\Core\Form\FormStateInterface $form_state: The form state of the form.
Return value
\Drupal\Core\Ajax\AjaxResponse The Ajax response.
File
- src/
Plugin/ Field/ FieldWidget/ ViewfieldWidgetSelect.php, line 270
Class
- ViewfieldWidgetSelect
- Plugin implementation of the 'viewfield_select' widget.
Namespace
Drupal\viewfield\Plugin\Field\FieldWidgetCode
public function ajaxGetDisplayOptions(array &$form, FormStateInterface $form_state) {
$trigger = $form_state
->getTriggeringElement();
$form_state_keys = array_slice($trigger['#parents'], 0, -1);
$form_state_value = $form_state
->getValue($form_state_keys);
$display_options = $trigger['#field_item']
->getDisplayOptions($form_state_value['target_id']);
$html = '';
foreach ($display_options as $key => $value) {
$html .= '<option value="' . $key . '">' . $value . '</option>';
}
$html = '<optgroup>' . $html . '</optgroup>';
// Create a class selector for Ajax response.
$selector = '.' . $this
->createDisplayClass($form_state_keys);
$response = new AjaxResponse();
$response
->addCommand(new HtmlCommand($selector, $html));
$response
->addCommand(new InvokeCommand($selector, 'ajaxEnableElements'));
$form_state
->setRebuild(TRUE);
return $response;
}