aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2019-11-23 02:33:22 -0500
committerJesse Luehrs <doy@tozt.net>2019-11-23 02:33:22 -0500
commitffc408d9496b8392579ef2c84db1fe688c55c1d9 (patch)
tree0ae1d8419a122260e7b637aae802d916cdf70930
parenta5a30357a102b8258e2589ce3dfcfe12faee3849 (diff)
downloadteleterm-ffc408d9496b8392579ef2c84db1fe688c55c1d9.tar.gz
teleterm-ffc408d9496b8392579ef2c84db1fe688c55c1d9.zip
shuffle some of the view structure around
-rw-r--r--teleterm-web/src/views.rs1
-rw-r--r--teleterm-web/src/views/list.rs50
-rw-r--r--teleterm-web/src/views/sessions.rs55
-rw-r--r--teleterm-web/src/views/terminal.rs7
-rw-r--r--teleterm-web/src/views/watch.rs6
-rw-r--r--teleterm/static/teleterm_web.js87
-rw-r--r--teleterm/static/teleterm_web_bg.wasmbin717549 -> 729758 bytes
7 files changed, 106 insertions, 100 deletions
diff --git a/teleterm-web/src/views.rs b/teleterm-web/src/views.rs
index 738dad7..349a45c 100644
--- a/teleterm-web/src/views.rs
+++ b/teleterm-web/src/views.rs
@@ -1,4 +1,5 @@
pub(crate) mod list;
pub(crate) mod page;
+pub(crate) mod sessions;
pub(crate) mod terminal;
pub(crate) mod watch;
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)
-}
diff --git a/teleterm-web/src/views/sessions.rs b/teleterm-web/src/views/sessions.rs
new file mode 100644
index 0000000..f3eb734
--- /dev/null
+++ b/teleterm-web/src/views/sessions.rs
@@ -0,0 +1,55 @@
+use crate::prelude::*;
+
+pub(crate) fn render(
+ sessions: &[crate::protocol::Session],
+) -> Node<crate::Msg> {
+ let rows: Vec<_> = sessions.iter().map(row).collect();
+ 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
+ ]
+}
+
+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)
+}
diff --git a/teleterm-web/src/views/terminal.rs b/teleterm-web/src/views/terminal.rs
index 104fbca..7a44629 100644
--- a/teleterm-web/src/views/terminal.rs
+++ b/teleterm-web/src/views/terminal.rs
@@ -1,12 +1,7 @@
use crate::prelude::*;
use unicode_width::UnicodeWidthStr as _;
-pub(crate) fn render(model: &crate::model::Model) -> Node<crate::Msg> {
- let screen = if let Some(screen) = model.screen() {
- screen
- } else {
- return seed::empty![];
- };
+pub(crate) fn render(screen: &vt100::Screen) -> Node<crate::Msg> {
let (rows, cols) = screen.size();
let (cursor_row, cursor_col) = screen.cursor_position();
diff --git a/teleterm-web/src/views/watch.rs b/teleterm-web/src/views/watch.rs
index b02c647..5fe7830 100644
--- a/teleterm-web/src/views/watch.rs
+++ b/teleterm-web/src/views/watch.rs
@@ -2,7 +2,11 @@ use crate::prelude::*;
pub(crate) fn render(model: &crate::model::Model) -> Vec<Node<crate::Msg>> {
vec![
- crate::views::terminal::render(model),
+ if let Some(screen) = model.screen() {
+ crate::views::terminal::render(screen)
+ } else {
+ seed::empty![]
+ },
seed::button![simple_ev(Ev::Click, crate::Msg::StopWatching), "back"],
]
}
diff --git a/teleterm/static/teleterm_web.js b/teleterm/static/teleterm_web.js
index 347b24f..32aadec 100644
--- a/teleterm/static/teleterm_web.js
+++ b/teleterm/static/teleterm_web.js
@@ -1,10 +1,6 @@
let wasm;
-function __wbg_elem_binding0(arg0, arg1) {
- wasm.__wbg_function_table.get(227)(arg0, arg1);
-}
-
const heap = new Array(32);
heap.fill(undefined);
@@ -21,23 +17,26 @@ function addHeapObject(obj) {
heap[idx] = obj;
return idx;
}
+function __wbg_elem_binding0(arg0, arg1, arg2) {
+ wasm.__wbg_function_table.get(76)(arg0, arg1, addHeapObject(arg2));
+}
function __wbg_elem_binding1(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(78)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(80)(arg0, arg1, arg2);
}
-function __wbg_elem_binding2(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(78)(arg0, arg1, addHeapObject(arg2));
+function __wbg_elem_binding2(arg0, arg1) {
+ wasm.__wbg_function_table.get(227)(arg0, arg1);
}
function __wbg_elem_binding3(arg0, arg1, arg2) {
wasm.__wbg_function_table.get(296)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding4(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(78)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(76)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding5(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(82)(arg0, arg1, arg2);
+ wasm.__wbg_function_table.get(76)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding6(arg0, arg1, arg2) {
- wasm.__wbg_function_table.get(78)(arg0, arg1, addHeapObject(arg2));
+ wasm.__wbg_function_table.get(76)(arg0, arg1, addHeapObject(arg2));
}
function __wbg_elem_binding7(arg0, arg1, arg2, arg3, arg4) {
wasm.__wbg_function_table.get(323)(arg0, arg1, addHeapObject(arg2), arg3, addHeapObject(arg4));
@@ -229,6 +228,17 @@ function init(module) {
imports.wbg.__wbindgen_object_drop_ref = function(arg0) {
takeObject(arg0);
};
+ imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
+ const ret = getStringFromWasm(arg0, arg1);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
+ const ret = getObject(arg0);
+ return addHeapObject(ret);
+ };
+ imports.wbg.__wbindgen_cb_forget = function(arg0) {
+ takeObject(arg0);
+ };
imports.wbg.__wbindgen_cb_drop = function(arg0) {
const obj = takeObject(arg0).original;
if (obj.cnt-- == 1) {
@@ -238,17 +248,6 @@ function init(module) {
const ret = false;
return ret;
};
- imports.wbg.__wbindgen_object_clone_ref = function(arg0) {
- const ret = getObject(arg0);
- return addHeapObject(ret);
- };
- imports.wbg.__wbindgen_string_new = function(arg0, arg1) {
- const ret = getStringFromWasm(arg0, arg1);
- return addHeapObject(ret);
- };
- imports.wbg.__wbindgen_cb_forget = function(arg0) {
- takeObject(arg0);
- };
imports.wbg.__wbindgen_json_parse = function(arg0, arg1) {
const ret = JSON.parse(getStringFromWasm(arg0, arg1));
return addHeapObject(ret);
@@ -885,16 +884,16 @@ function init(module) {
imports.wbg.__wbindgen_throw = function(arg0, arg1) {
throw new Error(getStringFromWasm(arg0, arg1));
};
- imports.wbg.__wbindgen_closure_wrapper319 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper1077 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding1(a, state.b, arg0);
+ return __wbg_elem_binding3(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(79)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(297)(a, state.b);
else state.a = a;
}
}
@@ -903,16 +902,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper321 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper303 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding2(a, state.b, arg0);
+ return __wbg_elem_binding6(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(79)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(77)(a, state.b);
else state.a = a;
}
}
@@ -921,16 +920,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper315 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper297 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding5(a, state.b, arg0);
+ return __wbg_elem_binding4(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(79)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(77)(a, state.b);
else state.a = a;
}
}
@@ -939,16 +938,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper654 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper305 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = () => {
+ const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding0(a, state.b, );
+ return __wbg_elem_binding0(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(228)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(77)(a, state.b);
else state.a = a;
}
}
@@ -957,16 +956,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper1074 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper301 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding3(a, state.b, arg0);
+ return __wbg_elem_binding5(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(297)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(77)(a, state.b);
else state.a = a;
}
}
@@ -975,16 +974,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper313 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper299 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
const real = (arg0) => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding4(a, state.b, arg0);
+ return __wbg_elem_binding1(a, state.b, arg0);
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(79)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(77)(a, state.b);
else state.a = a;
}
}
@@ -993,16 +992,16 @@ function init(module) {
const ret = real;
return addHeapObject(ret);
};
- imports.wbg.__wbindgen_closure_wrapper317 = function(arg0, arg1, arg2) {
+ imports.wbg.__wbindgen_closure_wrapper657 = function(arg0, arg1, arg2) {
const state = { a: arg0, b: arg1, cnt: 1 };
- const real = (arg0) => {
+ const real = () => {
state.cnt++;
const a = state.a;
state.a = 0;
try {
- return __wbg_elem_binding6(a, state.b, arg0);
+ return __wbg_elem_binding2(a, state.b, );
} finally {
- if (--state.cnt === 0) wasm.__wbg_function_table.get(79)(a, state.b);
+ if (--state.cnt === 0) wasm.__wbg_function_table.get(228)(a, state.b);
else state.a = a;
}
}
diff --git a/teleterm/static/teleterm_web_bg.wasm b/teleterm/static/teleterm_web_bg.wasm
index e4870a3..7f9a695 100644
--- a/teleterm/static/teleterm_web_bg.wasm
+++ b/teleterm/static/teleterm_web_bg.wasm
Binary files differ