Skip to content

Commit

Permalink
Fix to the date input year field
Browse files Browse the repository at this point in the history
Create the field if no value is informed only to the maxYear and not to
the current date.
  • Loading branch information
luksm authored and markstory committed Jun 19, 2013
1 parent 691288a commit dc3f911
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 1 deletion.
25 changes: 25 additions & 0 deletions lib/Cake/Test/Case/View/Helper/FormHelperTest.php
Expand Up @@ -6628,6 +6628,31 @@ public function testYearAutoExpandRange() {
$this->assertEquals($result, $expected);
}

/**
* testInputDateMaxYear method
*
* Let's say we want to only allow users born from
* 2006 to 2008 to register
* This beeing the first singup page, we still don't have any data
*
* @return void
*/
public function testInputDateMaxYear() {
$this->Form->request->data = array();
$this->Form->create('User');
$result = $this->Form->input('birthday',
array(
'label' => false,
'div' => false,
'type' => 'date',
'dateFormat' => 'DMY',
'minYear' => 2006,
'maxYear' => 2008
)
);
$this->assertContains('value="2008" selected="selected"', $result);
}

/**
* testTextArea method
*
Expand Down
6 changes: 5 additions & 1 deletion lib/Cake/View/Helper/FormHelper.php
Expand Up @@ -2359,7 +2359,11 @@ public function dateTime($fieldName, $dateFormat = 'DMY', $timeFormat = '12', $a
}

if ($attributes['value'] === null && $attributes['empty'] != true) {
$attributes['value'] = time();
if(!empty($attributes['maxYear']) && $attributes['maxYear'] < date('Y')) {
$attributes['value'] = strtotime(date($attributes['maxYear'] . '-m-d'));
} else {
$attributes['value'] = time();
}
}

if (!empty($attributes['value'])) {
Expand Down

0 comments on commit dc3f911

Please sign in to comment.