Paginate the homepage

This commit is contained in:
Bat
2018-07-25 15:20:09 +02:00
parent 740393bc18
commit 18125ab398
9 changed files with 50 additions and 5 deletions
+1
View File
@@ -46,6 +46,7 @@ fn main() {
routes::comments::create,
routes::instance::paginated_index,
routes::instance::index,
routes::instance::shared_inbox,
routes::instance::nodeinfo,
+12 -4
View File
@@ -10,17 +10,20 @@ use plume_models::{
instance::*
};
use inbox::Inbox;
use routes::Page;
#[get("/")]
fn index(conn: DbConn, user: Option<User>) -> Template {
#[get("/?<page>")]
fn paginated_index(conn: DbConn, user: Option<User>, page: Page) -> Template {
match Instance::get_local(&*conn) {
Some(inst) => {
let recents = Post::get_recents(&*conn, 6);
let recents = Post::get_recents_page(&*conn, page.limits());
Template::render("instance/index", json!({
"instance": inst,
"account": user,
"recents": recents.into_iter().map(|p| p.to_json(&*conn)).collect::<Vec<serde_json::Value>>()
"recents": recents.into_iter().map(|p| p.to_json(&*conn)).collect::<Vec<serde_json::Value>>(),
"page": page.page,
"n_pages": Page::total(Post::count(&*conn) as i32)
}))
}
None => {
@@ -31,6 +34,11 @@ fn index(conn: DbConn, user: Option<User>) -> Template {
}
}
#[get("/")]
fn index(conn: DbConn, user: Option<User>) -> Template {
paginated_index(conn, user, Page::first())
}
#[post("/inbox", data = "<data>")]
fn shared_inbox(conn: DbConn, data: String) -> String {
let act: serde_json::Value = serde_json::from_str(&data[..]).unwrap();