]> git.openstreetmap.org Git - rails.git/commitdiff
Rearrange data in blocks table to start/end/status columns
authorAnton Khorev <tony29@yandex.ru>
Wed, 23 Aug 2023 16:59:30 +0000 (19:59 +0300)
committerAnton Khorev <tony29@yandex.ru>
Wed, 4 Dec 2024 07:48:03 +0000 (10:48 +0300)
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..a1cd263084ad00e9078ce4a641ed2001d003029d 100644 (file)
@@ -25,6 +25,44 @@ 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.until_end_and_login")
+        else
+          t("user_blocks.helper.short.until_login")
+        end
+      else
+        t("user_blocks.helper.short.until_end")
+      end
+    else
+      if block.revoker_id.nil?
+        t("user_blocks.helper.short.ended")
+      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..ef790103e47c1f156db5126fd3567c6b0143d79f 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.active? %>
+  <td><%= block_short_time_in_future(block.ends_at) %></td>
+  <% else %>
+  <td><%= block_short_time_in_past([block.ends_at, block.updated_at].max) %></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 b190c2ca0bca1924078caeeee55e052b08aa7e06..6baa963312794b71129b97fa784b53e05866a02c 100644 (file)
@@ -2895,6 +2895,14 @@ en:
         years:
           one: "%{count} year"
           other: "%{count} years"
+      short:
+        ended: "ended"
+        revoked_html: "revoked by %{name}"
+        until_end: "until end"
+        until_login: "until login"
+        until_end_and_login: "until end & login"
+        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}"
@@ -2913,15 +2921,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"