From e41af9d6dfe5b969694a676e7d4ac578bd454f54 Mon Sep 17 00:00:00 2001 From: Anton Mokrousov Date: Sun, 24 Mar 2019 18:38:30 +0700 Subject: [PATCH 1/2] Fixed issue #15077 Signed-off-by: Anton Mokrousov --- libraries/classes/Util.php | 15 ++++++++++++++- test/classes/UtilTest.php | 15 ++++++++++++++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/libraries/classes/Util.php b/libraries/classes/Util.php index 7a8ed05c26..c0d9c8129d 100644 --- a/libraries/classes/Util.php +++ b/libraries/classes/Util.php @@ -2257,6 +2257,18 @@ class Util return $gotopage; } // end function + + /** + * Calculate page number through position + * @param int $pos position of first item + * @param int $max_count number of items per page + * @return int $page_num + * @access public + */ + + public static function getPageFromPosition($pos, $max_count) { + return floor($pos / $max_count)+1; + } /** * Prepare navigation for a list * @@ -2276,6 +2288,7 @@ class Util * * @todo use $pos from $_url_params */ + public static function getListNavigator( $count, $pos, array $_url_params, $script, $frame, $max_count, $name = 'pos', $classes = array() @@ -2333,7 +2346,7 @@ class Util $list_navigator_html .= self::pageselector( $name, $max_count, - floor(($pos + 1) / $max_count) + 1, + self::getPageFromPosition($pos, $max_count), ceil($count / $max_count) ); $list_navigator_html .= ''; diff --git a/test/classes/UtilTest.php b/test/classes/UtilTest.php index eaf2039b68..64c37758bb 100644 --- a/test/classes/UtilTest.php +++ b/test/classes/UtilTest.php @@ -2044,6 +2044,19 @@ class UtilTest extends PmaTestCase ); } + /** + * Test for Util::getPageFromPosition + * + * @return void + * + * @covers PhpMyAdmin\Util::getPageFromPosition + */ + function testGetPageFromPosition() { + $this->assertEquals(Util::getPageFromPosition(0,1), 1); + $this->assertEquals(Util::getPageFromPosition(1,1), 2); + $this->assertEquals(Util::getPageFromPosition(1,2), 1); + $this->assertEquals(Util::getPageFromPosition(1,6), 1); + } /** * Test for Util::linkOrButton * @@ -2096,4 +2109,4 @@ class UtilTest extends PmaTestCase ], ]; } -} +} \ No newline at end of file From 9dd940c58aa7814d91853c1644e041f2342f4163 Mon Sep 17 00:00:00 2001 From: William Desportes Date: Sun, 24 Mar 2019 18:35:37 +0100 Subject: [PATCH 2/2] Fix whitespace Signed-off-by: William Desportes --- test/classes/UtilTest.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/classes/UtilTest.php b/test/classes/UtilTest.php index 64c37758bb..fdf5e8a4c4 100644 --- a/test/classes/UtilTest.php +++ b/test/classes/UtilTest.php @@ -2046,7 +2046,7 @@ class UtilTest extends PmaTestCase /** * Test for Util::getPageFromPosition - * + * * @return void * * @covers PhpMyAdmin\Util::getPageFromPosition @@ -2057,6 +2057,7 @@ class UtilTest extends PmaTestCase $this->assertEquals(Util::getPageFromPosition(1,2), 1); $this->assertEquals(Util::getPageFromPosition(1,6), 1); } + /** * Test for Util::linkOrButton * @@ -2109,4 +2110,4 @@ class UtilTest extends PmaTestCase ], ]; } -} \ No newline at end of file +}