Merge branch 'develop' of https://github.com/octobercms/october into develop

This commit is contained in:
Luke Towers 2018-04-05 22:10:59 -06:00
commit 8df92f4ba1
2 changed files with 51 additions and 2 deletions

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') {
@ -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 = [

View File

@ -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'));
}
}