chg: [workflow:editor] Added support of chosen options and disabled inputs

pull/9193/head
Sami Mokaddem 2023-07-21 09:13:02 +02:00
parent be2a6bb57c
commit 15139fe865
No known key found for this signature in database
GPG Key ID: 164C473F627A06FA
2 changed files with 36 additions and 4 deletions

View File

@ -23,11 +23,19 @@ class Module_attach_enrichment extends WorkflowBaseActionModule
parent::__construct();
$this->Module = ClassRegistry::init('Module');
$modules = $this->Module->getModules('Enrichment');
$this->allModulesByName = Hash::combine($modules, '{n}.name', '{n}');
if (is_array($modules)) {
$this->allModulesByName = Hash::combine($modules, '{n}.name', '{n}');
}
$moduleOptions = [];
$pickerOptions = [];
$enrichmentAvailable = false;
if (!empty($modules) && is_array($modules)) {
$enrichmentAvailable = true;
$moduleOptions = array_merge([''], Hash::combine($modules, '{n}.name', '{n}.name'));
} else {
$moduleOptions[] = $modules;
$pickerOptions = [
'placeholder_text_multiple' => __('No enrichment module available'),
];
}
sort($moduleOptions);
$this->params = [
@ -36,7 +44,9 @@ class Module_attach_enrichment extends WorkflowBaseActionModule
'label' => 'Modules',
'type' => 'picker',
'multiple' => true,
'disabled' => !$enrichmentAvailable,
'options' => $moduleOptions,
'picker_options' => $pickerOptions,
],
];
}

View File

@ -1356,13 +1356,19 @@ function genNodeParamHtml(node, forNode = true) {
function afterNodeDrawCallback() {
var $nodes = $drawflow.find('.drawflow-node')
$nodes.find('.start-chosen').chosen()
$nodes.find('.start-chosen').each(function() {
var chosenOptions = $(this).data('chosen_options')
$(this).chosen(chosenOptions)
})
toggleDisplayOnFields()
enablePickerCreateNewOptions()
}
function afterModalShowCallback() {
$blockModal.find('.start-chosen').chosen()
$blockModal.find('.start-chosen').each(function() {
var chosenOptions = $(this).data('chosen_options')
$(this).chosen(chosenOptions)
})
var cmOptions = {
theme: 'default',
lineNumbers: true,
@ -1495,6 +1501,9 @@ function genSelect(options, forNode = true) {
}
}
}
if (options.disabled !== undefined) {
$select.prop('disabled', options.disabled == true)
}
var selectOptions = options.options
if (!Array.isArray(selectOptions)) {
selectOptions = Object.keys(options.options).map((k) => { return { name: options.options[k], value: k } })
@ -1543,6 +1552,10 @@ function genPicker(options, forNode = true) {
var $container = genSelect(options)
var $select = $container.find('select')
$select.addClass('start-chosen')
if (options.picker_options) {
// $select.data('chosen_options', options.picker_options)
$select.attr('data-chosen_options', JSON.stringify(options.picker_options))
}
return $container
}
@ -1587,6 +1600,9 @@ function genInput(options, isTextArea, forNode = true) {
if (options.placeholder !== undefined) {
$input.attr('placeholder', options.placeholder)
}
if (options.disabled !== undefined) {
$input.prop('disabled', options.disabled == true)
}
$label.append($input)
$container.append($label)
return $container
@ -1614,6 +1630,9 @@ function genCheckbox(options, forNode = true) {
} else if (options.default) {
$input.attr('checked', '')
}
if (options.disabled !== undefined) {
$input.prop('disabled', options.disabled == true)
}
$label.append($input)
var $container = $('<div>')
.addClass('node-param-container')
@ -1670,6 +1689,9 @@ function genRadio(options, forNode = true) {
} else if (options.default) {
$input.attr('checked', '')
}
if (options.disabled !== undefined) {
$input.prop('disabled', options.disabled == true)
}
var $label = $('<label>')
.addClass('radio')
.css({