I am showing multiselect dropdown in user form in admin panel(System->All user->Add User)
I have created a plugin for creating field in that form. Here is the code, I am using:
public function aroundGetFormHtml(
\Magento\User\Block\User\Edit\Tab\Main $subject,
\Closure $proceed
) {
$_objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$registry = $_objectManager->get('Magento\Framework\Registry');
$model = $registry->registry('permissions_user');
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$form = $subject->getForm();
if (is_object($form)) {
$fieldset = $form->addFieldset('user_attribute_fieldset', ['legend' => __('User Category')]);
// Gather our existing categories
$currentCategories = $this->_getExistingCategories($model);
$fieldset->addField(
'user_fields',
'multiselect',
[
'name' => 'user_fields',
'label' => __('user fields'),
'id' => 'user_fields',
'title' => __('user fields'),
'value' => $currentCategories,//for selected value
'values' => $objectManager->create('{namespace}\{module}\Helper\Data')->getOptions()//for all options
]
);
$subject->setForm($form);
}
return $proceed();
}
Now I want to create this as a Multi Select UI Field, shown below:
how I can implement ui select component in existing magento forms not made with ui components?
Thanks in advance:)
Best Answer
Firstly add a field in your ui-form:
Now create Js file to map the field's value:
Namespace_Modulename/view/adminhtml/web/js/select-category.js
Create a file to get options to display:
Namespace\ModuleName\Ui\Component\Form\Category\Options.php
Hope it helps!!!