diff options
Diffstat (limited to 'teleterm-web/src/views/list.rs')
-rw-r--r-- | teleterm-web/src/views/list.rs | 50 |
1 files changed, 1 insertions, 49 deletions
diff --git a/teleterm-web/src/views/list.rs b/teleterm-web/src/views/list.rs index 88d8a37..36fcc19 100644 --- a/teleterm-web/src/views/list.rs +++ b/teleterm-web/src/views/list.rs @@ -1,56 +1,8 @@ use crate::prelude::*; pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> { - let rows: Vec<_> = model.sessions().iter().map(row).collect(); vec![ - seed::table![ - seed::attrs! { At::Class => "list" }, - seed::tr![ - seed::th!["username"], - seed::th!["size"], - seed::th!["idle"], - seed::th!["watchers"], - seed::th!["title"], - ], - rows - ], + crate::views::sessions::render(model.sessions()), seed::button![simple_ev(Ev::Click, crate::Msg::Refresh), "refresh"], ] } - -fn row(session: &crate::protocol::Session) -> Node<crate::Msg> { - seed::tr![ - simple_ev(Ev::Click, crate::Msg::StartWatching(session.id.clone())), - seed::td![ - seed::a![seed::attrs! {At::Href => "#"}, session.username,] - ], - seed::td![format!("{}x{}", session.size.cols, session.size.rows)], - seed::td![format_time(session.idle_time)], - seed::td![format!("{}", session.watchers)], - seed::td![session.title], - ] -} - -// XXX copied from teleterm -fn format_time(dur: u32) -> String { - let secs = dur % 60; - let dur = dur / 60; - if dur == 0 { - return format!("{}s", secs); - } - - let mins = dur % 60; - let dur = dur / 60; - if dur == 0 { - return format!("{}m{:02}s", mins, secs); - } - - let hours = dur % 24; - let dur = dur / 24; - if dur == 0 { - return format!("{}h{:02}m{:02}s", hours, mins, secs); - } - - let days = dur; - format!("{}d{:02}h{:02}m{:02}s", days, hours, mins, secs) -} |