From: Ian Jackson Date: Thu, 26 Nov 2020 21:59:20 +0000 (+0000) Subject: abbrev timestamps of added messages X-Git-Tag: otter-0.2.0~347 X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=d5ebbd8e46666fd0df7426d164765a10812f23bd;p=otter.git abbrev timestamps of added messages Signed-off-by: Ian Jackson --- diff --git a/templates/script.ts b/templates/script.ts index ff73a441..974bbac1 100644 --- a/templates/script.ts +++ b/templates/script.ts @@ -104,6 +104,7 @@ var cseq : ClientSeq = 0; var ctoken : string; var uo_map : { [k: string]: UoRecord | null } = Object.create(null); var keyops_local : { [opname: string]: (uo: UoRecord) => void } = Object(); +var last_log_ts: wasm_bindgen.TimestampAbbreviator; var svg_ns : string; var space : SVGGraphicsElement; @@ -854,6 +855,7 @@ function add_timestamped_log_message(ts_html: string, msg_html: string) { add_thing('td', 'logmsg', msg_html); add_thing('td', 'logts', ts_html); } else if (layout == 'Landscape') { + ts_html = last_log_ts.update(ts_html); ne = document.createElement('div'); add_thing('span', 'logts', ts_html); ne.appendChild(document.createElement('br')); @@ -1112,6 +1114,15 @@ function startup() { redisplay_ancillaries(piece,p); } + let lastlogent_s = ''; + if (layout == 'Landscape') { + let lastent = log_elem.lastElementChild; + if (lastent !== null) { + lastlogent_s = lastent.firstElementChild!.innerHTML; + } + } + last_log_ts = wasm_bindgen.timestamp_abbreviator(lastlogent_s); + var es = new EventSource( sse_url_prefix + "/_/updates?ctoken="+ctoken+'&gen='+gen ); diff --git a/wasm/wasm.rs b/wasm/wasm.rs index f7e03a9a..b28b933d 100644 --- a/wasm/wasm.rs +++ b/wasm/wasm.rs @@ -90,8 +90,24 @@ impl ZCoordIterator { } #[wasm_bindgen] -pub fn timestring_abbreviate(base: &str, now: &str) -> JsString { - zcoord::misc::timestring_abbreviate(base,now).0.into() +pub struct TimestampAbbreviator { + last: String, +} + +#[wasm_bindgen] +pub fn timestamp_abbreviator(j: JsString) -> TimestampAbbreviator { + TimestampAbbreviator { last: j.into() } +} + +#[wasm_bindgen] +impl TimestampAbbreviator { + pub fn update(&mut self, now: &JsString) -> JsString { + let now: String = now.into(); + let (abbrev, _) = zcoord::misc::timestring_abbreviate(&self.last, &now); + let abbrev = abbrev.into(); + self.last = now; + abbrev + } } #[wasm_bindgen]