Add optional posts_per_page query string
This commit is contained in:
parent
f96c8ed49b
commit
918ce056bc
@ -26,7 +26,7 @@ type Result<T, E = rocket::response::Debug<sqlx::Error>> = std::result::Result<T
|
|||||||
mod post;
|
mod post;
|
||||||
pub use post::Entity as Post;
|
pub use post::Entity as Post;
|
||||||
|
|
||||||
const ROWS_PER_PAGE: usize = 4;
|
const DEFAULT_POSTS_PER_PAGE: usize = 25;
|
||||||
|
|
||||||
#[get("/new")]
|
#[get("/new")]
|
||||||
fn new() -> Template {
|
fn new() -> Template {
|
||||||
@ -72,14 +72,16 @@ async fn update(conn: Connection<Db>, id: i32, post_form: Form<post::Model>) ->
|
|||||||
Flash::success(Redirect::to("/"), "Post successfully edited.")
|
Flash::success(Redirect::to("/"), "Post successfully edited.")
|
||||||
}
|
}
|
||||||
|
|
||||||
#[get("/?<page>")]
|
#[get("/?<page>&<posts_per_page>")]
|
||||||
async fn list(
|
async fn list(
|
||||||
conn: Connection<Db>,
|
conn: Connection<Db>,
|
||||||
|
posts_per_page: Option<usize>,
|
||||||
page: Option<usize>,
|
page: Option<usize>,
|
||||||
flash: Option<FlashMessage<'_>>,
|
flash: Option<FlashMessage<'_>>,
|
||||||
) -> Template {
|
) -> Template {
|
||||||
let page = page.unwrap_or(0);
|
let page = page.unwrap_or(0);
|
||||||
let paginator = Post::find().paginate(&conn, ROWS_PER_PAGE);
|
let posts_per_page = posts_per_page.unwrap_or(DEFAULT_POSTS_PER_PAGE);
|
||||||
|
let paginator = Post::find().paginate(&conn, posts_per_page);
|
||||||
let num_pages = paginator.num_pages().await.ok().unwrap();
|
let num_pages = paginator.num_pages().await.ok().unwrap();
|
||||||
|
|
||||||
let posts = paginator
|
let posts = paginator
|
||||||
|
Loading…
x
Reference in New Issue
Block a user