diff --git a/app/helpers/user_blocks_helper.rb b/app/helpers/user_blocks_helper.rb
index e2770eb69..8a3a8a3eb 100644
--- a/app/helpers/user_blocks_helper.rb
+++ b/app/helpers/user_blocks_helper.rb
@@ -25,6 +25,48 @@ module UserBlocksHelper
end
end
+ def block_short_status(block)
+ if block.active?
+ if block.needs_view?
+ if block.ends_at > Time.now.utc
+ t("user_blocks.helper.short.active_unread")
+ else
+ t("user_blocks.helper.short.expired_unread")
+ end
+ else
+ t("user_blocks.helper.short.active")
+ end
+ else
+ if block.revoker_id.nil?
+ if block.updated_at > block.ends_at
+ t("user_blocks.helper.short.read_html", :time => block_short_time_in_past(block.updated_at))
+ else
+ t("user_blocks.helper.short.ended")
+ end
+ else
+ t("user_blocks.helper.short.revoked_html", :name => link_to(block.revoker.display_name, block.revoker,
+ :class => "username d-inline-block text-truncate text-wrap align-bottom",
+ :dir => "auto"))
+ end
+ end
+ end
+
+ def block_short_time_in_future(time)
+ tag.time l(time.to_date),
+ :datetime => time.xmlschema,
+ :title => t("user_blocks.helper.short.time_in_future_title",
+ :time_absolute => l(time, :format => :friendly),
+ :time_relative => time_ago_in_words(time))
+ end
+
+ def block_short_time_in_past(time)
+ tag.time l(time.to_date),
+ :datetime => time.xmlschema,
+ :title => t("user_blocks.helper.short.time_in_past_title",
+ :time_absolute => l(time, :format => :friendly),
+ :time_relative => time_ago_in_words(time, :scope => :"datetime.distance_in_words_ago"))
+ end
+
def block_duration_in_words(duration)
# Ensure the requested duration isn't negative, even by a millisecond
duration = 0 if duration.negative?
diff --git a/app/views/user_blocks/_block.html.erb b/app/views/user_blocks/_block.html.erb
index 8ae1408c6..cbc2ee23c 100644
--- a/app/views/user_blocks/_block.html.erb
+++ b/app/views/user_blocks/_block.html.erb
@@ -6,14 +6,13 @@
<%= link_to block.creator.display_name, block.creator, :class => "username d-inline-block text-truncate text-wrap", :dir => "auto" %> |
<% end %>
<%= h truncate(block.reason) %> |
- <%= h block_status(block) %> |
-
- <% if block.revoker_id.nil? %>
- <%= t(".not_revoked") %>
- <% else %>
- <%= link_to block.revoker.display_name, block.revoker, :class => "username d-inline-block text-truncate text-wrap", :dir => "auto" %>
- <% end %>
- |
+ <%= block_short_time_in_past(block.created_at) %> |
+ <% if block.ends_at > Time.now.utc %>
+ <%= block_short_time_in_future(block.ends_at) %> |
+ <% else %>
+ <%= block_short_time_in_past(block.ends_at) %> |
+ <% end %>
+ <%= h block_short_status(block) %> |
<%= link_to t(".show"), block %> |
<% if can?(:edit, block) %><%= link_to t(".edit"), edit_user_block_path(block) %><% end %> |
diff --git a/app/views/user_blocks/_page.html.erb b/app/views/user_blocks/_page.html.erb
index 8c8557f60..c2e516170 100644
--- a/app/views/user_blocks/_page.html.erb
+++ b/app/views/user_blocks/_page.html.erb
@@ -9,8 +9,9 @@
<%= t ".creator_name" %> |
<% end %>
<%= t ".reason" %> |
+ <%= t ".start" %> |
+ <%= t ".end" %> |
<%= t ".status" %> |
- <%= t ".revoker_name" %> |
|
|
diff --git a/config/locales/en.yml b/config/locales/en.yml
index c423de766..c3a0c5aed 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -2898,6 +2898,15 @@ en:
years:
one: "%{count} year"
other: "%{count} years"
+ short:
+ ended: "ended"
+ revoked_html: "revoked by %{name}"
+ active: "active"
+ active_unread: "active unread"
+ expired_unread: "expired unread"
+ read_html: "read at %{time}"
+ time_in_future_title: "%{time_absolute}; in %{time_relative}"
+ time_in_past_title: "%{time_absolute}; %{time_relative}"
blocks_on:
title: "Blocks on %{name}"
heading_html: "List of Blocks on %{name}"
@@ -2916,15 +2925,15 @@ en:
reason: "Reason for block:"
revoker: "Revoker:"
block:
- not_revoked: "(not revoked)"
show: "Show"
edit: "Edit"
page:
display_name: "Blocked User"
creator_name: "Creator"
reason: "Reason for block"
+ start: "Start"
+ end: "End"
status: "Status"
- revoker_name: "Revoked by"
navigation:
all_blocks: "All Blocks"
blocks_on_me: "Blocks on Me"