]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/4200'
authorTom Hughes <tom@compton.nu>
Tue, 10 Dec 2024 19:03:55 +0000 (19:03 +0000)
committerTom Hughes <tom@compton.nu>
Tue, 10 Dec 2024 19:03:55 +0000 (19:03 +0000)
app/helpers/user_blocks_helper.rb
app/views/user_blocks/_block.html.erb
app/views/user_blocks/_page.html.erb
config/locales/en.yml

index e2770eb69ea5bf655866b04499708eadd70a575e..8a3a8a3eb460f2b8c550d7daeba3c99e724e48f2 100644 (file)
@@ -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?
index 8ae1408c609babe4efe469118e6ba09130342235..cbc2ee23c0b39297c07f4aac73acd2c6121a0082 100644 (file)
@@ -6,14 +6,13 @@
   <td><%= link_to block.creator.display_name, block.creator, :class => "username d-inline-block text-truncate text-wrap", :dir => "auto" %></td>
   <% end %>
   <td><%= h truncate(block.reason) %></td>
-  <td><%= h block_status(block) %></td>
-  <td>
-    <% 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 %>
-  </td>
+  <td><%= block_short_time_in_past(block.created_at) %></td>
+  <% if block.ends_at > Time.now.utc %>
+  <td><%= block_short_time_in_future(block.ends_at) %></td>
+  <% else %>
+  <td><%= block_short_time_in_past(block.ends_at) %></td>
+  <% end %>
+  <td><%= h block_short_status(block) %></td>
   <td><%= link_to t(".show"), block %></td>
   <td><% if can?(:edit, block) %><%= link_to t(".edit"), edit_user_block_path(block) %><% end %></td>
 </tr>
index 8c8557f606e358b196d170209ecbb5779947ccd1..c2e516170a2ee655c65aca2dfbaf8cca5f9967e8 100644 (file)
@@ -9,8 +9,9 @@
         <th><%= t ".creator_name" %></th>
         <% end %>
         <th><%= t ".reason" %></th>
+        <th><%= t ".start" %></th>
+        <th><%= t ".end" %></th>
         <th><%= t ".status" %></th>
-        <th><%= t ".revoker_name" %></th>
         <th></th>
         <th></th>
       </tr>
index c423de766639981d375023147fe282ac9e8115c8..c3a0c5aed0802f2afe1c8acaf4eafee1f5c7e8e4 100644 (file)
@@ -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"