diff options
author | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-01-08 21:41:57 +0200 |
---|---|---|
committer | Manos Pitsidianakis <el13635@mail.ntua.gr> | 2020-01-20 15:58:59 +0200 |
commit | 86d8419ce7314f43a1d11ceede8cfa1f08835bbb (patch) | |
tree | 49e712502fc4e84f911db982e9fddd9c2d11e047 /ui/src/components | |
parent | 5e912db46101a12e7b363995ad28f99eec43152d (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.rs | 4 | ||||
-rw-r--r-- | ui/src/components/mail/listing/conversations.rs | 23 |
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")), + ), } } |