From bb225b12ee504f069099bf6b3b9113d82c387e4b Mon Sep 17 00:00:00 2001 From: Billy Chan Date: Mon, 20 Sep 2021 16:06:17 +0800 Subject: [PATCH] Rocket example page number starts from one --- examples/rocket_example/src/main.rs | 7 +++++-- examples/rocket_example/templates/index.html.tera | 4 ++-- src/executor/paginator.rs | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/examples/rocket_example/src/main.rs b/examples/rocket_example/src/main.rs index c1df1ee1..e73df30f 100644 --- a/examples/rocket_example/src/main.rs +++ b/examples/rocket_example/src/main.rs @@ -80,8 +80,11 @@ async fn list( flash: Option>, ) -> Template { // Set page number and items per page - let page = page.unwrap_or(0); + let page = page.unwrap_or(1); let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE); + if page == 0 { + panic!("Page number cannot be zero"); + } // Setup paginator let paginator = Post::find() @@ -90,7 +93,7 @@ async fn list( // Fetch paginated posts let posts = paginator - .fetch_page(page) + .fetch_page(page - 1) .await .expect("could not retrieve posts"); diff --git a/examples/rocket_example/templates/index.html.tera b/examples/rocket_example/templates/index.html.tera index 0cba1b7d..e755e1f7 100644 --- a/examples/rocket_example/templates/index.html.tera +++ b/examples/rocket_example/templates/index.html.tera @@ -26,9 +26,9 @@ - {% if page == 0 %} Previous {% else %} + {% if page == 1 %} Previous {% else %} Previous - {% endif %} | {% if page == num_pages - 1 %} Next {% else %} + {% endif %} | {% if page == num_pages %} Next {% else %} Next {% endif %} diff --git a/src/executor/paginator.rs b/src/executor/paginator.rs index 0cc7acbc..24822111 100644 --- a/src/executor/paginator.rs +++ b/src/executor/paginator.rs @@ -24,7 +24,7 @@ impl<'db, S> Paginator<'db, S> where S: SelectorTrait + 'db, { - /// Fetch a specific page + /// Fetch a specific page; page index starts from zero pub async fn fetch_page(&self, page: usize) -> Result, DbErr> { let query = self .query