Make maxLimit and limit settings independent.

Having maxLimit infer what it should be based on limit was not a very
transparent default behavior. The documentation states that maxLimit
will default to 100, but the code would default it to 'limit' if set.
This created confusing behavior when only one setting was defined.

Refs #5973
This commit is contained in:
mark_story 2015-02-27 22:35:52 -05:00
parent 54edb1cfa6
commit 02c9dda9a7
2 changed files with 8 additions and 10 deletions

View file

@ -333,15 +333,13 @@ class PaginatorComponent extends Component {
if (isset($this->settings[$alias])) {
$defaults = $this->settings[$alias];
}
if (isset($defaults['limit']) &&
(empty($defaults['maxLimit']) || $defaults['limit'] > $defaults['maxLimit'])
) {
$defaults['maxLimit'] = $defaults['limit'];
}
return array_merge(
array('page' => 1, 'limit' => 20, 'maxLimit' => 100, 'paramType' => 'named'),
$defaults
$defaults += array(
'page' => 1,
'limit' => 20,
'maxLimit' => 100,
'paramType' => 'named'
);
return $defaults;
}
/**

View file

@ -853,7 +853,7 @@ class PaginatorComponentTest extends CakeTestCase {
'paramType' => 'named',
);
$result = $this->Paginator->mergeOptions('Post');
$expected = array('page' => 1, 'limit' => 200, 'maxLimit' => 200, 'paramType' => 'named');
$expected = array('page' => 1, 'limit' => 200, 'maxLimit' => 100, 'paramType' => 'named');
$this->assertEquals($expected, $result);
$this->Paginator->settings = array(
@ -872,7 +872,7 @@ class PaginatorComponentTest extends CakeTestCase {
'paramType' => 'named',
);
$result = $this->Paginator->mergeOptions('Post');
$expected = array('page' => 1, 'limit' => 500, 'maxLimit' => 150, 'paramType' => 'named');
$expected = array('page' => 1, 'limit' => 500, 'maxLimit' => 100, 'paramType' => 'named');
$this->assertEquals($expected, $result);
}