Compare commits
4 Commits
4ddbdcb46b
...
94d70cd259
| Author | SHA1 | Date | |
|---|---|---|---|
| 94d70cd259 | |||
| 0140fa5efe | |||
| 832b322b77 | |||
| 66dbcf2cfd |
106
Cargo.lock
generated
106
Cargo.lock
generated
@ -854,7 +854,7 @@ dependencies = [
|
||||
"rusoto_s3 0.48.0",
|
||||
"serde",
|
||||
"sqlx",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tokio 1.47.1",
|
||||
"tracing",
|
||||
"urlencoding",
|
||||
@ -906,7 +906,7 @@ dependencies = [
|
||||
"semver 1.0.26",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -1876,9 +1876,9 @@ checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
|
||||
|
||||
[[package]]
|
||||
name = "form_urlencoded"
|
||||
version = "1.2.1"
|
||||
version = "1.2.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
|
||||
checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf"
|
||||
dependencies = [
|
||||
"percent-encoding",
|
||||
]
|
||||
@ -2918,9 +2918,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "icalendar"
|
||||
version = "0.17.2"
|
||||
version = "0.17.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "557f23d5e90d205464cfc9e2f3d7c117b0c3e963830a2a623aa8d69a186041a3"
|
||||
checksum = "b0aece6c6edc66265bb0e797dbc9893d63115e448433505f3f685c02a43d0111"
|
||||
dependencies = [
|
||||
"chrono",
|
||||
"iso8601",
|
||||
@ -3023,9 +3023,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
|
||||
|
||||
[[package]]
|
||||
name = "idna"
|
||||
version = "1.0.3"
|
||||
version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e"
|
||||
checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de"
|
||||
dependencies = [
|
||||
"idna_adapter",
|
||||
"smallvec 1.15.1",
|
||||
@ -3239,7 +3239,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-notmuch"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
dependencies = [
|
||||
"itertools",
|
||||
"log",
|
||||
@ -3248,32 +3248,32 @@ dependencies = [
|
||||
"rayon",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-notmuch"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
|
||||
checksum = "01c3d8a5789032da625c854c019358c504dde49d08ff1261676d6e708de1cc88"
|
||||
checksum = "5dedc9bde0d1f42696b25f607de426a1ca3c1dd1834fe259ba1b680ff46b74c7"
|
||||
dependencies = [
|
||||
"log",
|
||||
"mailparse",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-procmail2notmuch"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"clap",
|
||||
"letterbox-notmuch 0.17.36 (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/)",
|
||||
"letterbox-notmuch 0.17.37 (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/)",
|
||||
"serde",
|
||||
"sqlx",
|
||||
"tokio 1.47.1",
|
||||
@ -3281,7 +3281,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-server"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
dependencies = [
|
||||
"ammonia",
|
||||
"anyhow",
|
||||
@ -3305,8 +3305,8 @@ dependencies = [
|
||||
"html2text",
|
||||
"ical",
|
||||
"icalendar",
|
||||
"letterbox-notmuch 0.17.36",
|
||||
"letterbox-shared 0.17.36",
|
||||
"letterbox-notmuch 0.17.37",
|
||||
"letterbox-shared 0.17.37",
|
||||
"linkify",
|
||||
"lol_html",
|
||||
"mailparse",
|
||||
@ -3320,7 +3320,7 @@ dependencies = [
|
||||
"serde_json",
|
||||
"sqlx",
|
||||
"tantivy",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tokio 1.47.1",
|
||||
"tower-http",
|
||||
"tracing",
|
||||
@ -3332,10 +3332,10 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-shared"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
dependencies = [
|
||||
"build-info",
|
||||
"letterbox-notmuch 0.17.36",
|
||||
"letterbox-notmuch 0.17.37",
|
||||
"regex",
|
||||
"serde",
|
||||
"sqlx",
|
||||
@ -3345,12 +3345,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-shared"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
source = "sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/"
|
||||
checksum = "bef8e6e8a604f2c6c0d0d802ab4935051a830c5346cf8b573f246b7253ffc74a"
|
||||
checksum = "be81d4db41b6b6e4fd63be488bece639f52e5f5ed1d7d49b09c554cf2263ee3b"
|
||||
dependencies = [
|
||||
"build-info",
|
||||
"letterbox-notmuch 0.17.36 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
|
||||
"letterbox-notmuch 0.17.37 (sparse+https://git.z.xinu.tv/api/packages/wathiede/cargo/)",
|
||||
"regex",
|
||||
"serde",
|
||||
"sqlx",
|
||||
@ -3360,7 +3360,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "letterbox-web"
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
dependencies = [
|
||||
"build-info",
|
||||
"build-info-build",
|
||||
@ -3372,14 +3372,14 @@ dependencies = [
|
||||
"graphql_client",
|
||||
"human_format",
|
||||
"itertools",
|
||||
"letterbox-shared 0.17.36",
|
||||
"letterbox-shared 0.17.37",
|
||||
"log",
|
||||
"seed",
|
||||
"seed_hooks",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"strum_macros 0.27.2",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"uuid",
|
||||
"wasm-bindgen",
|
||||
"wasm-bindgen-test",
|
||||
@ -3552,7 +3552,7 @@ dependencies = [
|
||||
"mime",
|
||||
"precomputed-hash",
|
||||
"selectors 0.30.0",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -4163,7 +4163,7 @@ dependencies = [
|
||||
"futures-sink",
|
||||
"js-sys",
|
||||
"pin-project-lite",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
@ -4195,7 +4195,7 @@ dependencies = [
|
||||
"opentelemetry_sdk",
|
||||
"prost",
|
||||
"reqwest",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tokio 1.47.1",
|
||||
"tonic",
|
||||
"tracing",
|
||||
@ -4227,7 +4227,7 @@ dependencies = [
|
||||
"percent-encoding",
|
||||
"rand 0.9.2",
|
||||
"serde_json",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tokio 1.47.1",
|
||||
"tokio-stream",
|
||||
"tracing",
|
||||
@ -4382,9 +4382,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "percent-encoding"
|
||||
version = "2.3.1"
|
||||
version = "2.3.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
|
||||
checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220"
|
||||
|
||||
[[package]]
|
||||
name = "pest"
|
||||
@ -4393,7 +4393,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1db05f56d34358a8b1066f67cbb203ee3e7ed2ba674a6263a1d5ec6db2204323"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"ucd-trie",
|
||||
]
|
||||
|
||||
@ -4755,7 +4755,7 @@ dependencies = [
|
||||
"rustc-hash",
|
||||
"rustls",
|
||||
"socket2 0.5.10",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tokio 1.47.1",
|
||||
"tracing",
|
||||
"web-time",
|
||||
@ -4776,7 +4776,7 @@ dependencies = [
|
||||
"rustls",
|
||||
"rustls-pki-types",
|
||||
"slab",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tinyvec",
|
||||
"tracing",
|
||||
"web-time",
|
||||
@ -5935,7 +5935,7 @@ dependencies = [
|
||||
"serde_json",
|
||||
"sha2 0.10.9",
|
||||
"smallvec 1.15.1",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"time 0.3.41",
|
||||
"tokio 1.47.1",
|
||||
"tokio-stream",
|
||||
@ -6018,7 +6018,7 @@ dependencies = [
|
||||
"smallvec 1.15.1",
|
||||
"sqlx-core",
|
||||
"stringprep",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"time 0.3.41",
|
||||
"tracing",
|
||||
"whoami",
|
||||
@ -6056,7 +6056,7 @@ dependencies = [
|
||||
"smallvec 1.15.1",
|
||||
"sqlx-core",
|
||||
"stringprep",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"time 0.3.41",
|
||||
"tracing",
|
||||
"whoami",
|
||||
@ -6081,7 +6081,7 @@ dependencies = [
|
||||
"serde",
|
||||
"serde_urlencoded",
|
||||
"sqlx-core",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"time 0.3.41",
|
||||
"tracing",
|
||||
"url",
|
||||
@ -6311,7 +6311,7 @@ dependencies = [
|
||||
"tantivy-stacker",
|
||||
"tantivy-tokenizer-api",
|
||||
"tempfile",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"time 0.3.41",
|
||||
"uuid",
|
||||
"winapi 0.3.9",
|
||||
@ -6446,11 +6446,11 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "2.0.15"
|
||||
version = "2.0.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "80d76d3f064b981389ecb4b6b7f45a0bf9fdac1d5b9204c7bd6714fecc302850"
|
||||
checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
|
||||
dependencies = [
|
||||
"thiserror-impl 2.0.15",
|
||||
"thiserror-impl 2.0.16",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@ -6466,9 +6466,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "thiserror-impl"
|
||||
version = "2.0.15"
|
||||
version = "2.0.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "44d29feb33e986b6ea906bd9c3559a856983f92371b3eaa5e83782a351623de0"
|
||||
checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
@ -7143,7 +7143,7 @@ dependencies = [
|
||||
"log",
|
||||
"rand 0.9.2",
|
||||
"sha1",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"utf-8",
|
||||
]
|
||||
|
||||
@ -7230,9 +7230,9 @@ checksum = "6d49784317cd0d1ee7ec5c716dd598ec5b4483ea832a2dced265471cc0f690ae"
|
||||
|
||||
[[package]]
|
||||
name = "url"
|
||||
version = "2.5.4"
|
||||
version = "2.5.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60"
|
||||
checksum = "137a3c834eaf7139b73688502f3f1141a0337c5d8e4d9b536f9b8c796e26a7c4"
|
||||
dependencies = [
|
||||
"form_urlencoded",
|
||||
"idna",
|
||||
@ -7934,7 +7934,7 @@ dependencies = [
|
||||
"opentelemetry",
|
||||
"opentelemetry-otlp",
|
||||
"opentelemetry_sdk",
|
||||
"thiserror 2.0.15",
|
||||
"thiserror 2.0.16",
|
||||
"tokio 1.47.1",
|
||||
"tracing",
|
||||
"tracing-appender",
|
||||
@ -8070,9 +8070,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "zip"
|
||||
version = "4.3.0"
|
||||
version = "4.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9aed4ac33e8eb078c89e6cbb1d5c4c7703ec6d299fc3e7c3695af8f8b423468b"
|
||||
checksum = "8835eb39822904d39cb19465de1159e05d371973f0c6df3a365ad50565ddc8b9"
|
||||
dependencies = [
|
||||
"aes",
|
||||
"arbitrary",
|
||||
|
||||
@ -8,7 +8,7 @@ authors = ["Bill Thiede <git@xinu.tv>"]
|
||||
edition = "2021"
|
||||
license = "UNLICENSED"
|
||||
publish = ["xinu"]
|
||||
version = "0.17.36"
|
||||
version = "0.17.37"
|
||||
repository = "https://git.z.xinu.tv/wathiede/letterbox"
|
||||
|
||||
[profile.dev]
|
||||
|
||||
@ -33,8 +33,8 @@ headers = "0.4.0"
|
||||
html-escape = "0.2.13"
|
||||
icalendar = "0.17.1"
|
||||
ical = "0.10"
|
||||
letterbox-notmuch = { path = "../notmuch", version = "0.17.36", registry = "xinu" }
|
||||
letterbox-shared = { path = "../shared", version = "0.17.36", registry = "xinu" }
|
||||
letterbox-notmuch = { path = "../notmuch", version = "0.17.37", registry = "xinu" }
|
||||
letterbox-shared = { path = "../shared", version = "0.17.37", registry = "xinu" }
|
||||
linkify = "0.10.0"
|
||||
lol_html = "2.3.0"
|
||||
mailparse = "0.16.1"
|
||||
|
||||
@ -1,8 +1,10 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>TLS Report</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h3>TLS Report Summary:</h3>
|
||||
<p>Organization: {{ report.organization_name }}</p>
|
||||
@ -10,34 +12,37 @@
|
||||
<p>Contact: {{ report.contact_info }}</p>
|
||||
<p>Report ID: {{ report.report_id }}</p>
|
||||
|
||||
<h4>Policies:</h4>
|
||||
<h4><b>Policies:</b></h4>
|
||||
{% for policy in report.policies %}
|
||||
<h5>Policy Domain: {{ policy.policy.policy_domain }}</h5>
|
||||
<ul>
|
||||
<li>Policy Type: {{ policy.policy.policy_type }}</li>
|
||||
<li>Policy String: {{ policy.policy.policy_string | join(", ") }}</li>
|
||||
<li>Successful Sessions: {{ policy.summary.total_successful_session_count }}</li>
|
||||
<li>Failed Sessions: {{ policy.summary.total_failure_session_count }}</li>
|
||||
</ul>
|
||||
<h5><b>Policy Domain:</b> {{ policy.policy.policy_domain }}</h5>
|
||||
<ul>
|
||||
<li><b>Policy Type:</b> {{ policy.policy.policy_type }}</li>
|
||||
<li><b>Policy String:</b> {{ policy.policy.policy_string | join(", ") }}</li>
|
||||
<li><b>Successful Sessions:</b> {{ policy.summary.total_successful_session_count }}</li>
|
||||
<li><b>Failed Sessions:</b> {{ policy.summary.total_failure_session_count }}</li>
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
{% for mx_host in policy.policy.mx_host %}
|
||||
<li>Hostname: {{ mx_host.hostname }}, Failures: {{ mx_host.failure_count }}, Result: {{ mx_host.result_type }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<ul>
|
||||
{% 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> {{
|
||||
mx_host.result_type }}</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
|
||||
<ul>
|
||||
{% for detail in policy.failure_details %}
|
||||
<li>Result: {{ detail.result_type }}, Sending IP: {{ detail.sending_mta_ip }}, Failed Sessions: {{ detail.failed_session_count }}
|
||||
{% if detail.failure_reason_code != "" %}
|
||||
(Reason: {{ detail.failure_reason_code }})
|
||||
{% endif %}
|
||||
</li>
|
||||
(Receiving IP: {{ detail.receiving_ip }})
|
||||
(Receiving MX: {{ detail.receiving_mx_hostname }})
|
||||
(Additional Info: {{ detail.additional_info }})
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<ul>
|
||||
{% for detail in policy.failure_details %}
|
||||
<li><b>Result:</b> {{ detail.result_type }}, <b>Sending IP:</b> {{ detail.sending_mta_ip }}, <b>Failed
|
||||
Sessions:</b> {{ detail.failed_session_count }}
|
||||
{% if detail.failure_reason_code != "" %}
|
||||
(<b>Reason:</b> {{ detail.failure_reason_code }})
|
||||
{% endif %}
|
||||
</li>
|
||||
(<b>Receiving IP:</b> {{ detail.receiving_ip }})
|
||||
(<b>Receiving MX:</b> {{ detail.receiving_mx_hostname }})
|
||||
(<b>Additional Info:</b> {{ detail.additional_info }})
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% endfor %}
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@ -12,7 +12,7 @@ version.workspace = true
|
||||
|
||||
[dependencies]
|
||||
build-info = "0.0.41"
|
||||
letterbox-notmuch = { path = "../notmuch", version = "0.17.36", registry = "xinu" }
|
||||
letterbox-notmuch = { path = "../notmuch", version = "0.17.37", registry = "xinu" }
|
||||
regex = "1.11.1"
|
||||
serde = { version = "1.0.219", features = ["derive"] }
|
||||
sqlx = "0.8.5"
|
||||
|
||||
@ -33,7 +33,7 @@ wasm-bindgen = "=0.2.100"
|
||||
uuid = { version = "1.16.0", features = [
|
||||
"js",
|
||||
] } # direct dep to set js feature, prevents Rng issues
|
||||
letterbox-shared = { path = "../shared/", version = "0.17.36", registry = "xinu" }
|
||||
letterbox-shared = { path = "../shared/", version = "0.17.37", registry = "xinu" }
|
||||
seed_hooks = { version = "0.4.1", registry = "xinu" }
|
||||
strum_macros = "0.27.1"
|
||||
gloo-console = "0.3.0"
|
||||
|
||||
@ -901,13 +901,22 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
|
||||
.collect();
|
||||
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 common_style = C!["text-sm", "pr-2", "text-gray-500"];
|
||||
div![
|
||||
C!["flex", "p-4", "bg-neutral-800"],
|
||||
div![avatar],
|
||||
C!["flex", "bg-neutral-800"],
|
||||
div![C!["self-center"], avatar],
|
||||
div![
|
||||
C!["px-4", "mr-auto"],
|
||||
span![
|
||||
C!["font-semibold", "text-sm"],
|
||||
C![
|
||||
"mx-2",
|
||||
"flex-1",
|
||||
"flex",
|
||||
"flex-nowrap",
|
||||
"items-center",
|
||||
"truncate",
|
||||
],
|
||||
div![
|
||||
C!["font-semibold", "text-white"],
|
||||
&common_style,
|
||||
from_detail.as_ref().map(|addr| attrs! {
|
||||
At::Title => addr
|
||||
}),
|
||||
@ -915,7 +924,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
|
||||
],
|
||||
" ",
|
||||
IF!(!msg.to.is_empty() => div![
|
||||
C!["text-xs"],
|
||||
&common_style,
|
||||
span![
|
||||
C!["font-semibold"],
|
||||
"To: "
|
||||
@ -926,7 +935,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
|
||||
" "
|
||||
]),
|
||||
IF!(!msg.cc.is_empty() => div![
|
||||
C!["text-xs", "max-w-full", "overflow-clip", "text-ellipsis"],
|
||||
&common_style,
|
||||
span![
|
||||
C!["font-semibold"],
|
||||
"CC: "
|
||||
@ -934,7 +943,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
|
||||
cc_addrs
|
||||
]),
|
||||
IF!(show_x_original_to => div![
|
||||
C!["text-xs"],
|
||||
&common_style,
|
||||
span![
|
||||
C!["font-semibold"],
|
||||
"Original To: "
|
||||
@ -953,7 +962,7 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
|
||||
]
|
||||
]),
|
||||
IF!(show_delivered_to => div![
|
||||
C!["text-xs"],
|
||||
&common_style,
|
||||
span![
|
||||
C!["font-semibold"],
|
||||
"Delivered To: "
|
||||
@ -972,27 +981,25 @@ fn render_closed_header(msg: &ShowThreadQueryThreadOnEmailThreadMessages) -> Nod
|
||||
]
|
||||
]),
|
||||
],
|
||||
span![
|
||||
C!["text-right"],
|
||||
msg.timestamp
|
||||
.map(|ts| div![C!["text-xs", "text-nowrap"], human_age(ts)]),
|
||||
div![
|
||||
C!["p-2"],
|
||||
i![C![
|
||||
"mx-4",
|
||||
"read-status",
|
||||
"far",
|
||||
if is_unread {
|
||||
"fa-envelope"
|
||||
} else {
|
||||
"fa-envelope-open"
|
||||
},
|
||||
]],
|
||||
ev(Ev::Click, move |e| {
|
||||
e.stop_propagation();
|
||||
Msg::SetUnread(id, !is_unread)
|
||||
})
|
||||
],
|
||||
msg.timestamp.map(|ts| div![
|
||||
C!["text-xs", "text-nowrap", "justify-self-end", "self-center"],
|
||||
human_age(ts)
|
||||
]),
|
||||
div![
|
||||
i![C![
|
||||
"m-2",
|
||||
"read-status",
|
||||
"far",
|
||||
if is_unread {
|
||||
"fa-envelope"
|
||||
} else {
|
||||
"fa-envelope-open"
|
||||
},
|
||||
]],
|
||||
ev(Ev::Click, move |e| {
|
||||
e.stop_propagation();
|
||||
Msg::SetUnread(id, !is_unread)
|
||||
})
|
||||
]
|
||||
]
|
||||
}
|
||||
@ -1007,7 +1014,7 @@ fn message_render(msg: &ShowThreadQueryThreadOnEmailThreadMessages, open: bool)
|
||||
};
|
||||
let from = from.map(|f| f.replace('.', "-").replace('@', "-"));
|
||||
div![
|
||||
C!["lg:mb-4"],
|
||||
C!["pb-1"],
|
||||
div![
|
||||
if open {
|
||||
render_open_header(&msg)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user