Permalink
Browse files

Updated Radio and Inputs form helper

Also added UnitTest for radio fieldset class-name
  • Loading branch information...
xhs345 committed May 20, 2016
1 parent 615be3a commit eeefa03546260a7f60faf343efd9ea9bb00036af
Showing with 33 additions and 13 deletions.
  1. +19 −0 lib/Cake/Test/Case/View/Helper/FormHelperTest.php
  2. +14 −13 lib/Cake/View/Helper/FormHelper.php
@@ -3914,6 +3914,25 @@ public function testRadio() {
);
$this->assertTags($result, $expected);
$result = $this->Form->radio('Model.field', array('option A', 'option B'), array('fieldset' => 'classy-stuff'));
$expected = array(
'fieldset' => array('class' => 'classy-stuff'),
'legend' => array(),
'Field',
'/legend',
'input' => array('type' => 'hidden', 'name' => 'data[Model][field]', 'value' => '', 'id' => 'ModelField_'),
array('input' => array('type' => 'radio', 'name' => 'data[Model][field]', 'value' => '0', 'id' => 'ModelField0')),
array('label' => array('for' => 'ModelField0')),
'option A',
'/label',
array('input' => array('type' => 'radio', 'name' => 'data[Model][field]', 'value' => '1', 'id' => 'ModelField1')),
array('label' => array('for' => 'ModelField1')),
'option B',
'/label',
'/fieldset'
);
$this->assertTags($result, $expected);
$result = $this->Form->radio(
'Employee.gender',
array('male' => 'Male', 'female' => 'Female'),
@@ -932,11 +932,15 @@ public function inputs($fields = null, $blacklist = null, $options = array()) {
if (isset($options['legend'])) {
$legend = $options['legend'];
unset($options['legend']);
}
if (isset($options['fieldset'])) {
$fieldset = $options['fieldset'];
unset($options['fieldset']);
}
if (empty($fields)) {
$fields = $modelFields;
}
@@ -971,11 +975,11 @@ public function inputs($fields = null, $blacklist = null, $options = array()) {
$out .= $this->input($name, $options);
}
if (is_string($fieldset)) {
$fieldsetClass = sprintf(' class="%s"', $fieldset);
} else {
$fieldsetClass = '';
}
if (is_string($fieldset)) {
$fieldsetClass = array('class' => $fieldset);
} else {
$fieldsetClass = '';
}
if ($fieldset) {
if ($legend) {
@@ -1545,9 +1549,9 @@ public function radio($fieldName, $options = array(), $attributes = array()) {
$legend = __(Inflector::humanize($this->field()));
}
$fieldset = '';
$fieldsetAttrs = '';
if (isset($attributes['fieldset'])) {
$fieldset = $attributes['fieldset'];
$fieldsetAttrs = array('class' => $attributes['fieldset']);
unset($attributes['fieldset']);
}
@@ -1644,13 +1648,10 @@ public function radio($fieldName, $options = array(), $attributes = array()) {
if (is_array($between)) {
$between = '';
}
if ($legend) {
if (is_string($fieldset)) {
$fieldsetClass = sprintf(' class="%s"', $fieldset);
} else {
$fieldsetClass = '';
}
$out = $this->Html->useTag('fieldset', $fieldsetClass, $this->Html->useTag('legend', $legend) . $between . $out);
$out = $this->Html->useTag('legend', $legend) . $between . $out;
$out = $this->Html->useTag('fieldset', $fieldsetAttrs, $out);
}
return $out;
}

0 comments on commit eeefa03

Please sign in to comment.