From 2a754160ef07bd82612b693b651fd11b95440d73 Mon Sep 17 00:00:00 2001 From: Sami Mokaddem Date: Tue, 17 Jan 2023 09:19:40 +0100 Subject: [PATCH] chg: [ui:genericDropdownField] Allow using select2 on dropdown field --- .../genericElements/Form/Fields/dropdownField.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/templates/element/genericElements/Form/Fields/dropdownField.php b/templates/element/genericElements/Form/Fields/dropdownField.php index b71b15b..4db9707 100644 --- a/templates/element/genericElements/Form/Fields/dropdownField.php +++ b/templates/element/genericElements/Form/Fields/dropdownField.php @@ -19,6 +19,9 @@ if (!empty($fieldData['label'])) { if ($controlParams['options'] instanceof \Cake\ORM\Query) { $controlParams['options'] = $controlParams['options']->all()->toList(); } +if (!empty($fieldData['select2'])) { + $controlParams['class'] .= ' select2-input'; +} if (in_array('_custom', array_keys($controlParams['options']))) { $customInputValue = $this->Form->getSourceValue($fieldData['field']); if (!in_array($customInputValue, $controlParams['options'])) { @@ -49,6 +52,15 @@ echo $this->FormFieldMassage->prepareFormElement($this->Form, $controlParams, $f $select.attr('onclick', 'toggleFreetextSelectField(this)') $select.parent().find('input.custom-value').attr('oninput', 'updateAssociatedSelect(this)') updateAssociatedSelect($select.parent().find('input.custom-value')[0]) + + let $container = $select.closest('.modal-dialog') + if ($container.length == 0) { + $container = $(document.body) + } + $select.select2({ + dropdownParent: $container, + }) + }) })()