Merge branch 'develop' of https://github.com/octobercms/october into develop
This commit is contained in:
commit
8df92f4ba1
|
|
@ -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') {
|
||||
|
|
@ -486,11 +487,18 @@ class FormField
|
|||
$triggerForm = HtmlHelper::reduceNameHierarchy($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 = [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,41 @@
|
|||
<?php
|
||||
|
||||
use Backend\Widgets\Form;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class FormTestModel extends Model
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
class FormTest extends TestCase
|
||||
{
|
||||
public function testCheckboxlistTrigger()
|
||||
{
|
||||
$form = new Form(null, [
|
||||
'model' => new FormTestModel,
|
||||
'arrayName' => 'array',
|
||||
'fields' => [
|
||||
'trigger' => [
|
||||
'type' => 'checkboxlist',
|
||||
'options' => [
|
||||
'1' => 'Value One'
|
||||
]
|
||||
],
|
||||
'triggered' => [
|
||||
'type' => 'text',
|
||||
'trigger' => [
|
||||
'field' => 'trigger[]',
|
||||
'action' => 'show',
|
||||
'condition' => 'value[1]'
|
||||
]
|
||||
]
|
||||
]
|
||||
]);
|
||||
|
||||
$form->render();
|
||||
|
||||
$attributes = $form->getField('triggered')->getAttributes('container', false);
|
||||
$this->assertEquals('[name="array[trigger][]"]', array_get($attributes, 'data-trigger'));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue