web: truncate raw messages and prep for attachments
This commit is contained in:
@@ -21,6 +21,7 @@ mod legacy;
|
||||
mod mobile;
|
||||
mod tablet;
|
||||
|
||||
const MAX_RAW_MESSAGE_SIZE: usize = 100_000;
|
||||
fn set_title(title: &str) {
|
||||
seed::document().set_title(&format!("lb: {}", title));
|
||||
}
|
||||
@@ -250,6 +251,18 @@ fn view_addresses(addrs: &[impl Email]) -> Vec<Node<Msg>> {
|
||||
addrs.into_iter().map(view_address).collect::<Vec<_>>()
|
||||
}
|
||||
|
||||
fn raw_text_message(contents: &str) -> Node<Msg> {
|
||||
let (contents, truncated_msg) = if contents.len() > MAX_RAW_MESSAGE_SIZE {
|
||||
(
|
||||
&contents[..MAX_RAW_MESSAGE_SIZE],
|
||||
Some(div!["... contents truncated"]),
|
||||
)
|
||||
} else {
|
||||
(contents, None)
|
||||
};
|
||||
div![C!["view-part-text-plain"], contents, truncated_msg,]
|
||||
}
|
||||
|
||||
fn thread(thread: &ShowThreadQueryThread) -> Node<Msg> {
|
||||
// TODO(wathiede): show per-message subject if it changes significantly from top-level subject
|
||||
set_title(&thread.subject);
|
||||
@@ -279,7 +292,7 @@ fn thread(thread: &ShowThreadQueryThread) -> Node<Msg> {
|
||||
contents,
|
||||
content_tree,
|
||||
},
|
||||
) => div![C!["view-part-text-plain"], contents, pre![content_tree]],
|
||||
) => div![raw_text_message(&contents), pre![content_tree]],
|
||||
ShowThreadQueryThreadMessagesBody::Html(
|
||||
ShowThreadQueryThreadMessagesBodyOnHtml {
|
||||
contents,
|
||||
@@ -290,12 +303,12 @@ fn thread(thread: &ShowThreadQueryThread) -> Node<Msg> {
|
||||
raw![contents],
|
||||
IF!(!msg.attachments.is_empty() =>
|
||||
div![
|
||||
C!["attachments"],
|
||||
br![],
|
||||
h2!["Attachments"],
|
||||
msg.attachments
|
||||
.iter()
|
||||
.map(|a| div!["Filename: ", &a.filename, " ", &a.content_type])
|
||||
C!["attachments"],
|
||||
br![],
|
||||
h2!["Attachments"],
|
||||
msg.attachments
|
||||
.iter()
|
||||
.map(|a| div!["Filename: ", &a.filename, " ", &a.content_type])
|
||||
]),
|
||||
pre![content_tree]
|
||||
],
|
||||
|
||||
Reference in New Issue
Block a user