From 8d7982900acb85ea0f93f109f4c9821fff73aef7 Mon Sep 17 00:00:00 2001 From: tezlm Date: Wed, 4 Oct 2023 23:24:33 -0700 Subject: [PATCH] Fix table headers and pagination --- src/service/admin/mod.rs | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/service/admin/mod.rs b/src/service/admin/mod.rs index 887c6a6a..45b95fd2 100644 --- a/src/service/admin/mod.rs +++ b/src/service/admin/mod.rs @@ -778,8 +778,12 @@ impl Service { rooms.sort_by_key(|r| r.1); rooms.reverse(); - let slice_start = page.saturating_sub(1) * PAGE_SIZE; - let Some(rooms) = rooms.get(slice_start..slice_start + PAGE_SIZE) else { + let rooms: Vec<_> = rooms.into_iter() + .skip(page.saturating_sub(1) * PAGE_SIZE) + .take(PAGE_SIZE) + .collect(); + + if rooms.is_empty() { return Ok(RoomMessageEventContent::text_plain("No more rooms.")); }; @@ -792,7 +796,7 @@ impl Service { .join("\n") ); let output_html = format!( - "\n\t\t\n{}
Room list - page {page}
idnamemembers
", + "\n\t\t\n{}
Room list - page {page}
idmembersname
", rooms .iter() .map(|(id, members, name)| format!( @@ -916,9 +920,13 @@ impl Service { .collect::>(); rooms.sort_by_key(|r| r.1); rooms.reverse(); + + let rooms: Vec<_> = rooms.into_iter() + .skip(page.saturating_sub(1) * PAGE_SIZE) + .take(PAGE_SIZE) + .collect(); - let slice_start = page.saturating_sub(1) * PAGE_SIZE; - let Some(rooms) = rooms.get(slice_start..slice_start + PAGE_SIZE) else { + if rooms.is_empty() { return Ok(RoomMessageEventContent::text_plain("No more rooms.")); }; @@ -931,7 +939,7 @@ impl Service { .join("\n") ); let output_html = format!( - "\n\t\t\n{}
Room directory - page {page}
idnamemembers
", + "\n\t\t\n{}
Room directory - page {page}
idmembersname
", rooms .iter() .map(|(id, members, name)| format!(