summaryrefslogtreecommitdiffstats
path: root/ui/src/components
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2020-01-08 21:41:57 +0200
committerManos Pitsidianakis <el13635@mail.ntua.gr>2020-01-20 15:58:59 +0200
commit86d8419ce7314f43a1d11ceede8cfa1f08835bbb (patch)
tree49e712502fc4e84f911db982e9fddd9c2d11e047 /ui/src/components
parent5e912db46101a12e7b363995ad28f99eec43152d (diff)
ui: add manual_refresh, refresh_command settings
manual_refresh Ar boolean (optional) if true, do not monitor account for changes (shortcut listing.refresh) refresh_command Ar String (optional) command to execute when manually refreshing (shortcut listing.refresh)
Diffstat (limited to 'ui/src/components')
-rw-r--r--ui/src/components/mail/listing/compact.rs4
-rw-r--r--ui/src/components/mail/listing/conversations.rs23
2 files changed, 18 insertions, 9 deletions
diff --git a/ui/src/components/mail/listing/compact.rs b/ui/src/components/mail/listing/compact.rs
index 47f81d01..59923106 100644
--- a/ui/src/components/mail/listing/compact.rs
+++ b/ui/src/components/mail/listing/compact.rs
@@ -591,7 +591,7 @@ impl CompactListing {
subject.truncate_at_boundary(150);
if thread_node.len() > 0 {
EntryStrings {
- date: DateString(ConversationsListing::format_date(thread_node)),
+ date: DateString(ConversationsListing::format_date(context, thread_node)),
subject: SubjectString(format!("{} ({})", subject, thread_node.len(),)),
flag: FlagString(format!(
"{}{}",
@@ -603,7 +603,7 @@ impl CompactListing {
}
} else {
EntryStrings {
- date: DateString(ConversationsListing::format_date(thread_node)),
+ date: DateString(ConversationsListing::format_date(context, thread_node)),
subject: SubjectString(subject),
flag: FlagString(format!(
"{}{}",
diff --git a/ui/src/components/mail/listing/conversations.rs b/ui/src/components/mail/listing/conversations.rs
index 3b322706..b26b006f 100644
--- a/ui/src/components/mail/listing/conversations.rs
+++ b/ui/src/components/mail/listing/conversations.rs
@@ -562,7 +562,7 @@ impl ConversationsListing {
subject.truncate_at_boundary(150);
if thread_node.len() > 0 {
EntryStrings {
- date: DateString(ConversationsListing::format_date(thread_node)),
+ date: DateString(ConversationsListing::format_date(context, thread_node)),
subject: SubjectString(format!("{} ({})", subject, thread_node.len(),)),
flag: FlagString(format!(
"{}{}",
@@ -574,7 +574,7 @@ impl ConversationsListing {
}
} else {
EntryStrings {
- date: DateString(ConversationsListing::format_date(thread_node)),
+ date: DateString(ConversationsListing::format_date(context, thread_node)),
subject: SubjectString(subject),
flag: FlagString(format!(
"{}{}",
@@ -890,28 +890,37 @@ impl ConversationsListing {
}
}
- pub(super) fn format_date(thread_node: &ThreadNode) -> String {
+ pub(super) fn format_date(context: &Context, thread_node: &ThreadNode) -> String {
let d = std::time::UNIX_EPOCH + std::time::Duration::from_secs(thread_node.date());
let now: std::time::Duration = std::time::SystemTime::now()
.duration_since(d)
.unwrap_or_else(|_| std::time::Duration::new(std::u64::MAX, 0));
match now.as_secs() {
- n if n < 60 * 60 => format!(
+ n if context.settings.listing.recent_dates && n < 60 * 60 => format!(
"{} minute{} ago",
n / (60),
if n / 60 == 1 { "" } else { "s" }
),
- n if n < 24 * 60 * 60 => format!(
+ n if context.settings.listing.recent_dates && n < 24 * 60 * 60 => format!(
"{} hour{} ago",
n / (60 * 60),
if n / (60 * 60) == 1 { "" } else { "s" }
),
- n if n < 7 * 24 * 60 * 60 => format!(
+ n if context.settings.listing.recent_dates && n < 7 * 24 * 60 * 60 => format!(
"{} day{} ago",
n / (24 * 60 * 60),
if n / (24 * 60 * 60) == 1 { "" } else { "s" }
),
- _ => melib::datetime::timestamp_to_string(thread_node.date(), Some("%Y-%m-%d %T")),
+ _ => melib::datetime::timestamp_to_string(
+ thread_node.date(),
+ context
+ .settings
+ .listing
+ .datetime_fmt
+ .as_ref()
+ .map(String::as_str)
+ .or(Some("%Y-%m-%d %T")),
+ ),
}
}