Compare commits

..

1 Commits

Author SHA1 Message Date
4ddbdcb46b chore(deps): lock file maintenance
Some checks failed
Continuous integration / Check (push) Successful in 1m43s
Continuous integration / Test Suite (push) Successful in 3m22s
Continuous integration / Trunk (push) Successful in 1m40s
Continuous integration / Rustfmt (push) Failing after 44s
Continuous integration / build (push) Successful in 3m39s
Continuous integration / Disallow unused dependencies (push) Failing after 2m23s
2025-08-20 00:17:43 +00:00
7 changed files with 114 additions and 126 deletions

106
Cargo.lock generated
View File

@ -854,7 +854,7 @@ dependencies = [
"rusoto_s3 0.48.0", "rusoto_s3 0.48.0",
"serde", "serde",
"sqlx", "sqlx",
"thiserror 2.0.16", "thiserror 2.0.15",
"tokio 1.47.1", "tokio 1.47.1",
"tracing", "tracing",
"urlencoding", "urlencoding",
@ -906,7 +906,7 @@ dependencies = [
"semver 1.0.26", "semver 1.0.26",
"serde", "serde",
"serde_json", "serde_json",
"thiserror 2.0.16", "thiserror 2.0.15",
] ]
[[package]] [[package]]
@ -1876,9 +1876,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
[[package]] [[package]]
name = "form_urlencoded" name = "form_urlencoded"
version = "1.2.2" version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
dependencies = [ dependencies = [
"percent-encoding", "percent-encoding",
] ]
@ -2918,9 +2918,9 @@ dependencies = [
[[package]] [[package]]
name = "icalendar" name = "icalendar"
version = "0.17.3" version = "0.17.2"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b0aece6c6edc66265bb0e797dbc9893d63115e448433505f3f685c02a43d0111" checksum = "557f23d5e90d205464cfc9e2f3d7c117b0c3e963830a2a623aa8d69a186041a3"
dependencies = [ dependencies = [
"chrono", "chrono",
"iso8601", "iso8601",
@ -3023,9 +3023,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
[[package]] [[package]]
name = "idna" name = "idna"
version = "1.1.0" version = "1.0.3"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
dependencies = [ dependencies = [
"idna_adapter", "idna_adapter",
"smallvec 1.15.1", "smallvec 1.15.1",
@ -3239,7 +3239,7 @@ dependencies = [
[[package]] [[package]]
name = "letterbox-notmuch" name = "letterbox-notmuch"
version = "0.17.37" version = "0.17.36"
dependencies = [ dependencies = [
"itertools", "itertools",
"log", "log",
@ -3248,32 +3248,32 @@ dependencies = [
"rayon", "rayon",
"serde", "serde",
"serde_json", "serde_json",
"thiserror 2.0.16", "thiserror 2.0.15",
"tracing", "tracing",
] ]
[[package]] [[package]]
name = "letterbox-notmuch" name = "letterbox-notmuch"
version = "0.17.37" version = "0.17.36"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/" source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "5dedc9bde0d1f42696b25f607de426a1ca3c1dd1834fe259ba1b680ff46b74c7" checksum = "01c3d8a5789032da625c854c019358c504dde49d08ff1261676d6e708de1cc88"
dependencies = [ dependencies = [
"log", "log",
"mailparse", "mailparse",
"serde", "serde",
"serde_json", "serde_json",
"thiserror 2.0.16", "thiserror 2.0.15",
"tracing", "tracing",
] ]
[[package]] [[package]]
name = "letterbox-procmail2notmuch" name = "letterbox-procmail2notmuch"
version = "0.17.37" version = "0.17.36"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"clap", "clap",
"letterbox-notmuch 0.17.37 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)", "letterbox-notmuch 0.17.36 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"letterbox-shared 0.17.37 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)", "letterbox-shared 0.17.36 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"serde", "serde",
"sqlx", "sqlx",
"tokio 1.47.1", "tokio 1.47.1",
@ -3281,7 +3281,7 @@ dependencies = [
[[package]] [[package]]
name = "letterbox-server" name = "letterbox-server"
version = "0.17.37" version = "0.17.36"
dependencies = [ dependencies = [
"ammonia", "ammonia",
"anyhow", "anyhow",
@ -3305,8 +3305,8 @@ dependencies = [
"html2text", "html2text",
"ical", "ical",
"icalendar", "icalendar",
"letterbox-notmuch 0.17.37", "letterbox-notmuch 0.17.36",
"letterbox-shared 0.17.37", "letterbox-shared 0.17.36",
"linkify", "linkify",
"lol_html", "lol_html",
"mailparse", "mailparse",
@ -3320,7 +3320,7 @@ dependencies = [
"serde_json", "serde_json",
"sqlx", "sqlx",
"tantivy", "tantivy",
"thiserror 2.0.16", "thiserror 2.0.15",
"tokio 1.47.1", "tokio 1.47.1",
"tower-http", "tower-http",
"tracing", "tracing",
@ -3332,10 +3332,10 @@ dependencies = [
[[package]] [[package]]
name = "letterbox-shared" name = "letterbox-shared"
version = "0.17.37" version = "0.17.36"
dependencies = [ dependencies = [
"build-info", "build-info",
"letterbox-notmuch 0.17.37", "letterbox-notmuch 0.17.36",
"regex", "regex",
"serde", "serde",
"sqlx", "sqlx",
@ -3345,12 +3345,12 @@ dependencies = [
[[package]] [[package]]
name = "letterbox-shared" name = "letterbox-shared"
version = "0.17.37" version = "0.17.36"
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/" source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
checksum = "be81d4db41b6b6e4fd63be488bece639f52e5f5ed1d7d49b09c554cf2263ee3b" checksum = "bef8e6e8a604f2c6c0d0d802ab4935051a830c5346cf8b573f246b7253ffc74a"
dependencies = [ dependencies = [
"build-info", "build-info",
"letterbox-notmuch 0.17.37 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)", "letterbox-notmuch 0.17.36 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
"regex", "regex",
"serde", "serde",
"sqlx", "sqlx",
@ -3360,7 +3360,7 @@ dependencies = [
[[package]] [[package]]
name = "letterbox-web" name = "letterbox-web"
version = "0.17.37" version = "0.17.36"
dependencies = [ dependencies = [
"build-info", "build-info",
"build-info-build", "build-info-build",
@ -3372,14 +3372,14 @@ dependencies = [
"graphql_client", "graphql_client",
"human_format", "human_format",
"itertools", "itertools",
"letterbox-shared 0.17.37", "letterbox-shared 0.17.36",
"log", "log",
"seed", "seed",
"seed_hooks", "seed_hooks",
"serde", "serde",
"serde_json", "serde_json",
"strum_macros 0.27.2", "strum_macros 0.27.2",
"thiserror 2.0.16", "thiserror 2.0.15",
"uuid", "uuid",
"wasm-bindgen", "wasm-bindgen",
"wasm-bindgen-test", "wasm-bindgen-test",
@ -3552,7 +3552,7 @@ dependencies = [
"mime", "mime",
"precomputed-hash", "precomputed-hash",
"selectors 0.30.0", "selectors 0.30.0",
"thiserror 2.0.16", "thiserror 2.0.15",
] ]
[[package]] [[package]]
@ -4163,7 +4163,7 @@ dependencies = [
"futures-sink", "futures-sink",
"js-sys", "js-sys",
"pin-project-lite", "pin-project-lite",
"thiserror 2.0.16", "thiserror 2.0.15",
"tracing", "tracing",
] ]
@ -4195,7 +4195,7 @@ dependencies = [
"opentelemetry_sdk", "opentelemetry_sdk",
"prost", "prost",
"reqwest", "reqwest",
"thiserror 2.0.16", "thiserror 2.0.15",
"tokio 1.47.1", "tokio 1.47.1",
"tonic", "tonic",
"tracing", "tracing",
@ -4227,7 +4227,7 @@ dependencies = [
"percent-encoding", "percent-encoding",
"rand 0.9.2", "rand 0.9.2",
"serde_json", "serde_json",
"thiserror 2.0.16", "thiserror 2.0.15",
"tokio 1.47.1", "tokio 1.47.1",
"tokio-stream", "tokio-stream",
"tracing", "tracing",
@ -4382,9 +4382,9 @@ dependencies = [
[[package]] [[package]]
name = "percent-encoding" name = "percent-encoding"
version = "2.3.2" version = "2.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
[[package]] [[package]]
name = "pest" name = "pest"
@ -4393,7 +4393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323" checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323"
dependencies = [ dependencies = [
"memchr", "memchr",
"thiserror 2.0.16", "thiserror 2.0.15",
"ucd-trie", "ucd-trie",
] ]
@ -4755,7 +4755,7 @@ dependencies = [
"rustc-hash", "rustc-hash",
"rustls", "rustls",
"socket2 0.5.10", "socket2 0.5.10",
"thiserror 2.0.16", "thiserror 2.0.15",
"tokio 1.47.1", "tokio 1.47.1",
"tracing", "tracing",
"web-time", "web-time",
@ -4776,7 +4776,7 @@ dependencies = [
"rustls", "rustls",
"rustls-pki-types", "rustls-pki-types",
"slab", "slab",
"thiserror 2.0.16", "thiserror 2.0.15",
"tinyvec", "tinyvec",
"tracing", "tracing",
"web-time", "web-time",
@ -5935,7 +5935,7 @@ dependencies = [
"serde_json", "serde_json",
"sha2 0.10.9", "sha2 0.10.9",
"smallvec 1.15.1", "smallvec 1.15.1",
"thiserror 2.0.16", "thiserror 2.0.15",
"time 0.3.41", "time 0.3.41",
"tokio 1.47.1", "tokio 1.47.1",
"tokio-stream", "tokio-stream",
@ -6018,7 +6018,7 @@ dependencies = [
"smallvec 1.15.1", "smallvec 1.15.1",
"sqlx-core", "sqlx-core",
"stringprep", "stringprep",
"thiserror 2.0.16", "thiserror 2.0.15",
"time 0.3.41", "time 0.3.41",
"tracing", "tracing",
"whoami", "whoami",
@ -6056,7 +6056,7 @@ dependencies = [
"smallvec 1.15.1", "smallvec 1.15.1",
"sqlx-core", "sqlx-core",
"stringprep", "stringprep",
"thiserror 2.0.16", "thiserror 2.0.15",
"time 0.3.41", "time 0.3.41",
"tracing", "tracing",
"whoami", "whoami",
@ -6081,7 +6081,7 @@ dependencies = [
"serde", "serde",
"serde_urlencoded", "serde_urlencoded",
"sqlx-core", "sqlx-core",
"thiserror 2.0.16", "thiserror 2.0.15",
"time 0.3.41", "time 0.3.41",
"tracing", "tracing",
"url", "url",
@ -6311,7 +6311,7 @@ dependencies = [
"tantivy-stacker", "tantivy-stacker",
"tantivy-tokenizer-api", "tantivy-tokenizer-api",
"tempfile", "tempfile",
"thiserror 2.0.16", "thiserror 2.0.15",
"time 0.3.41", "time 0.3.41",
"uuid", "uuid",
"winapi 0.3.9", "winapi 0.3.9",
@ -6446,11 +6446,11 @@ dependencies = [
[[package]] [[package]]
name = "thiserror" name = "thiserror"
version = "2.0.16" version = "2.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850"
dependencies = [ dependencies = [
"thiserror-impl 2.0.16", "thiserror-impl 2.0.15",
] ]
[[package]] [[package]]
@ -6466,9 +6466,9 @@ dependencies = [
[[package]] [[package]]
name = "thiserror-impl" name = "thiserror-impl"
version = "2.0.16" version = "2.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0"
dependencies = [ dependencies = [
"proc-macro2", "proc-macro2",
"quote", "quote",
@ -7143,7 +7143,7 @@ dependencies = [
"log", "log",
"rand 0.9.2", "rand 0.9.2",
"sha1", "sha1",
"thiserror 2.0.16", "thiserror 2.0.15",
"utf-8", "utf-8",
] ]
@ -7230,9 +7230,9 @@ checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae"
[[package]] [[package]]
name = "url" name = "url"
version = "2.5.6" version = "2.5.4"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "137a3c834eaf7139b73688502f3f1141a0337c5d8e4d9b536f9b8c796e26a7c4" checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
dependencies = [ dependencies = [
"form_urlencoded", "form_urlencoded",
"idna", "idna",
@ -7934,7 +7934,7 @@ dependencies = [
"opentelemetry", "opentelemetry",
"opentelemetry-otlp", "opentelemetry-otlp",
"opentelemetry_sdk", "opentelemetry_sdk",
"thiserror 2.0.16", "thiserror 2.0.15",
"tokio 1.47.1", "tokio 1.47.1",
"tracing", "tracing",
"tracing-appender", "tracing-appender",
@ -8070,9 +8070,9 @@ dependencies = [
[[package]] [[package]]
name = "zip" name = "zip"
version = "4.5.0" version = "4.3.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8835eb39822904d39cb19465de1159e05d371973f0c6df3a365ad50565ddc8b9" checksum = "9aed4ac33e8eb078c89e6cbb1d5c4c7703ec6d299fc3e7c3695af8f8b423468b"
dependencies = [ dependencies = [
"aes", "aes",
"arbitrary", "arbitrary",

View File

@ -8,7 +8,7 @@ authors = ["Bill Thiede <git@xinu.tv>"]
edition = "2021" edition = "2021"
license = "UNLICENSED" license = "UNLICENSED"
publish = ["xinu"] publish = ["xinu"]
version = "0.17.37" version = "0.17.36"
repository = "https://git.z.xinu.tv/wathiede/letterbox" repository = "https://git.z.xinu.tv/wathiede/letterbox"
[profile.dev] [profile.dev]

View File

@ -33,8 +33,8 @@ headers = "0.4.0"
html-escape = "0.2.13" html-escape = "0.2.13"
icalendar = "0.17.1" icalendar = "0.17.1"
ical = "0.10" ical = "0.10"
letterbox-notmuch = { path = "../notmuch", version = "0.17.37", registry = "xinu" } letterbox-notmuch = { path = "../notmuch", version = "0.17.36", registry = "xinu" }
letterbox-shared = { path = "../shared", version = "0.17.37", registry = "xinu" } letterbox-shared = { path = "../shared", version = "0.17.36", registry = "xinu" }
linkify = "0.10.0" linkify = "0.10.0"
lol_html = "2.3.0" lol_html = "2.3.0"
mailparse = "0.16.1" mailparse = "0.16.1"

View File

@ -1,10 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<title>TLS Report</title> <title>TLS Report</title>
</head> </head>
<body> <body>
<h3>TLS Report Summary:</h3> <h3>TLS Report Summary:</h3>
<p>Organization: {{ report.organization_name }}</p> <p>Organization: {{ report.organization_name }}</p>
@ -12,37 +10,34 @@
<p>Contact: {{ report.contact_info }}</p> <p>Contact: {{ report.contact_info }}</p>
<p>Report ID: {{ report.report_id }}</p> <p>Report ID: {{ report.report_id }}</p>
<h4><b>Policies:</b></h4> <h4>Policies:</h4>
{% for policy in report.policies %} {% for policy in report.policies %}
<h5><b>Policy Domain:</b> {{ policy.policy.policy_domain }}</h5> <h5>Policy Domain: {{ policy.policy.policy_domain }}</h5>
<ul> <ul>
<li><b>Policy Type:</b> {{ policy.policy.policy_type }}</li> <li>Policy Type: {{ policy.policy.policy_type }}</li>
<li><b>Policy String:</b> {{ policy.policy.policy_string | join(", ") }}</li> <li>Policy String: {{ policy.policy.policy_string | join(", ") }}</li>
<li><b>Successful Sessions:</b> {{ policy.summary.total_successful_session_count }}</li> <li>Successful Sessions: {{ policy.summary.total_successful_session_count }}</li>
<li><b>Failed Sessions:</b> {{ policy.summary.total_failure_session_count }}</li> <li>Failed Sessions: {{ policy.summary.total_failure_session_count }}</li>
</ul> </ul>
<ul> <ul>
{% for mx_host in policy.policy.mx_host %} {% for mx_host in policy.policy.mx_host %}
<li><b>Hostname:</b> {{ mx_host.hostname }}, <b>Failures:</b> {{ mx_host.failure_count }}, <b>Result:</b> {{ <li>Hostname: {{ mx_host.hostname }}, Failures: {{ mx_host.failure_count }}, Result: {{ mx_host.result_type }}</li>
mx_host.result_type }}</li> {% endfor %}
{% endfor %} </ul>
</ul>
<ul> <ul>
{% for detail in policy.failure_details %} {% for detail in policy.failure_details %}
<li><b>Result:</b> {{ detail.result_type }}, <b>Sending IP:</b> {{ detail.sending_mta_ip }}, <b>Failed <li>Result: {{ detail.result_type }}, Sending IP: {{ detail.sending_mta_ip }}, Failed Sessions: {{ detail.failed_session_count }}
Sessions:</b> {{ detail.failed_session_count }} {% if detail.failure_reason_code != "" %}
{% if detail.failure_reason_code != "" %} (Reason: {{ detail.failure_reason_code }})
(<b>Reason:</b> {{ detail.failure_reason_code }}) {% endif %}
{% endif %} </li>
</li> (Receiving IP: {{ detail.receiving_ip }})
(<b>Receiving IP:</b> {{ detail.receiving_ip }}) (Receiving MX: {{ detail.receiving_mx_hostname }})
(<b>Receiving MX:</b> {{ detail.receiving_mx_hostname }}) (Additional Info: {{ detail.additional_info }})
(<b>Additional Info:</b> {{ detail.additional_info }}) {% endfor %}
{% endfor %} </ul>
</ul>
{% endfor %} {% endfor %}
</body> </body>
</html> </html>

View File

@ -12,7 +12,7 @@ version.workspace = true
[dependencies] [dependencies]
build-info = "0.0.41" build-info = "0.0.41"
letterbox-notmuch = { path = "../notmuch", version = "0.17.37", registry = "xinu" } letterbox-notmuch = { path = "../notmuch", version = "0.17.36", registry = "xinu" }
regex = "1.11.1" regex = "1.11.1"
serde = { version = "1.0.219", features = ["derive"] } serde = { version = "1.0.219", features = ["derive"] }
sqlx = "0.8.5" sqlx = "0.8.5"

View File

@ -33,7 +33,7 @@ wasm-bindgen = "=0.2.100"
uuid = { version = "1.16.0", features = [ uuid = { version = "1.16.0", features = [
"js", "js",
] } # direct dep to set js feature, prevents Rng issues ] } # direct dep to set js feature, prevents Rng issues
letterbox-shared = { path = "../shared/", version = "0.17.37", registry = "xinu" } letterbox-shared = { path = "../shared/", version = "0.17.36", registry = "xinu" }
seed_hooks = { version = "0.4.1", registry = "xinu" } seed_hooks = { version = "0.4.1", registry = "xinu" }
strum_macros = "0.27.1" strum_macros = "0.27.1"
gloo-console = "0.3.0" gloo-console = "0.3.0"

View File

@ -901,22 +901,13 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
.collect(); .collect();
let show_x_original_to = !*to_xinu.borrow() && msg.x_original_to.is_some(); let show_x_original_to = !*to_xinu.borrow() && msg.x_original_to.is_some();
let show_delivered_to = !*to_xinu.borrow() && !show_x_original_to && msg.delivered_to.is_some(); let show_delivered_to = !*to_xinu.borrow() && !show_x_original_to && msg.delivered_to.is_some();
let common_style = C!["text-sm", "pr-2", "text-gray-500"];
div![ div![
C!["flex", "bg-neutral-800"], C!["flex", "p-4", "bg-neutral-800"],
div![C!["self-center"], avatar], div![avatar],
div![ div![
C![ C!["px-4", "mr-auto"],
"mx-2", span![
"flex-1", C!["font-semibold", "text-sm"],
"flex",
"flex-nowrap",
"items-center",
"truncate",
],
div![
C!["font-semibold", "text-white"],
&common_style,
from_detail.as_ref().map(|addr| attrs! { from_detail.as_ref().map(|addr| attrs! {
At::Title => addr At::Title => addr
}), }),
@ -924,7 +915,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
], ],
" ", " ",
IF!(!msg.to.is_empty() => div![ IF!(!msg.to.is_empty() => div![
&common_style, C!["text-xs"],
span![ span![
C!["font-semibold"], C!["font-semibold"],
"To: " "To: "
@ -935,7 +926,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
" " " "
]), ]),
IF!(!msg.cc.is_empty() => div![ IF!(!msg.cc.is_empty() => div![
&common_style, C!["text-xs", "max-w-full", "overflow-clip", "text-ellipsis"],
span![ span![
C!["font-semibold"], C!["font-semibold"],
"CC: " "CC: "
@ -943,7 +934,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
cc_addrs cc_addrs
]), ]),
IF!(show_x_original_to => div![ IF!(show_x_original_to => div![
&common_style, C!["text-xs"],
span![ span![
C!["font-semibold"], C!["font-semibold"],
"Original To: " "Original To: "
@ -962,7 +953,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
] ]
]), ]),
IF!(show_delivered_to => div![ IF!(show_delivered_to => div![
&common_style, C!["text-xs"],
span![ span![
C!["font-semibold"], C!["font-semibold"],
"Delivered To: " "Delivered To: "
@ -981,25 +972,27 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
] ]
]), ]),
], ],
msg.timestamp.map(|ts| div![ span![
C!["text-xs", "text-nowrap", "justify-self-end", "self-center"], C!["text-right"],
human_age(ts) msg.timestamp
]), .map(|ts| div![C!["text-xs", "text-nowrap"], human_age(ts)]),
div![ div![
i![C![ C!["p-2"],
"m-2", i![C![
"read-status", "mx-4",
"far", "read-status",
if is_unread { "far",
"fa-envelope" if is_unread {
} else { "fa-envelope"
"fa-envelope-open" } else {
}, "fa-envelope-open"
]], },
ev(Ev::Click, move |e| { ]],
e.stop_propagation(); ev(Ev::Click, move |e| {
Msg::SetUnread(id, !is_unread) e.stop_propagation();
}) Msg::SetUnread(id, !is_unread)
})
],
] ]
] ]
} }
@ -1014,7 +1007,7 @@ fn message_render(msg: &ShowThreadQueryThreadOnEmailThreadMessages, open: bool)
}; };
let from = from.map(|f| f.replace('.', "-").replace('@', "-")); let from = from.map(|f| f.replace('.', "-").replace('@', "-"));
div![ div![
C!["pb-1"], C!["lg:mb-4"],
div![ div![
if open { if open {
render_open_header(&msg) render_open_header(&msg)