Preserve multi field types with trigger use

Refs #3195
Refs #2861
Refs https://github.com/daftspunk/oc-test-plugin/pull/41
This commit is contained in:
Samuel Georges 2018-04-06 10:58:56 +10:00
parent 97e156d43d
commit 2164c07616

View File

@ -467,6 +467,7 @@ class FormField
$triggerField = array_get($this->trigger, 'field');
$triggerCondition = array_get($this->trigger, 'condition');
$triggerForm = $this->arrayName;
$triggerMulti = '';
// Apply these to container
if (in_array($triggerAction, ['hide', 'show']) && $position != 'container') {
@ -485,11 +486,18 @@ class FormField
$triggerForm = HtmlHelper::reduceFieldNameHierarchy($triggerForm, $triggerFieldParentLevel);
}
// Preserve multi field types
if (Str::endsWith($triggerField, '[]')) {
$triggerField = substr($triggerField, 0, -2);
$triggerMulti = '[]';
}
// Final compilation
if ($this->arrayName) {
$fullTriggerField = $triggerForm.'['.implode('][', HtmlHelper::nameToArray($triggerField)).']';
$fullTriggerField = $triggerForm.'['.implode('][', HtmlHelper::nameToArray($triggerField)).']'.$triggerMulti;
}
else {
$fullTriggerField = $triggerField;
$fullTriggerField = $triggerField.$triggerMulti;
}
$newAttributes = [