From d3e0cf177b702299ac910f978343f4fd7e2e8719 Mon Sep 17 00:00:00 2001 From: Pablo Brasero Date: Wed, 10 Jun 2026 14:00:01 +0100 Subject: [PATCH] Show status of moderation zones --- app/helpers/moderation_zones_helper.rb | 18 ++++++++++++++++++ app/views/moderation_zones/_row.html.erb | 1 + app/views/moderation_zones/index.html.erb | 1 + config/locales/en.yml | 6 ++++++ .../moderation_zones_controller_test.rb | 8 ++++++++ 5 files changed, 34 insertions(+) diff --git a/app/helpers/moderation_zones_helper.rb b/app/helpers/moderation_zones_helper.rb index c5e02f34a..54e8923d4 100644 --- a/app/helpers/moderation_zones_helper.rb +++ b/app/helpers/moderation_zones_helper.rb @@ -22,4 +22,22 @@ module ModerationZonesHelper end end end + + def moderation_zone_short_status(moderation_zone) + if moderation_zone.active? + t("moderation_zones.helper.short.active") + elsif moderation_zone.revoker_id + t( + "moderation_zones.helper.short.revoked_html", + :name => link_to( + moderation_zone.revoker.display_name, + moderation_zone.revoker, + :class => "username d-inline-block text-truncate text-wrap align-bottom", + :dir => "auto" + ) + ) + else + t("moderation_zones.helper.short.ended") + end + end end diff --git a/app/views/moderation_zones/_row.html.erb b/app/views/moderation_zones/_row.html.erb index 2fa6a8d0d..d44666116 100644 --- a/app/views/moderation_zones/_row.html.erb +++ b/app/views/moderation_zones/_row.html.erb @@ -12,5 +12,6 @@ <%= block_short_time_in_past(moderation_zone.ends_at) %> <% end %> + <%= moderation_zone_short_status(moderation_zone) %> <%= link_to t(".edit"), edit_moderation_zone_path(moderation_zone) %> diff --git a/app/views/moderation_zones/index.html.erb b/app/views/moderation_zones/index.html.erb index dd683cc47..a8eac68a5 100644 --- a/app/views/moderation_zones/index.html.erb +++ b/app/views/moderation_zones/index.html.erb @@ -14,6 +14,7 @@ <%= t(".creator") %> <%= t(".start") %> <%= t(".end") %> + <%= t(".status") %> diff --git a/config/locales/en.yml b/config/locales/en.yml index c6a8eef39..dedbee211 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -3863,6 +3863,7 @@ en: creator: Creator start: Start end: End + status: Status row: edit: Edit new: @@ -3875,3 +3876,8 @@ en: heading: "Editing moderation zone %{name}" update: success: "Moderation zone updated." + helper: + short: + ended: "ended" + active: "active" + revoked_html: "revoked by %{name}" diff --git a/test/controllers/moderation_zones_controller_test.rb b/test/controllers/moderation_zones_controller_test.rb index 76b24cd17..01bc0d462 100644 --- a/test/controllers/moderation_zones_controller_test.rb +++ b/test/controllers/moderation_zones_controller_test.rb @@ -38,9 +38,17 @@ class ModerationZonesControllerTest < ActionDispatch::IntegrationTest end test "index, as moderator" do + create(:moderation_zone, :ends_at => 1.week.ago) + create(:moderation_zone, :ends_at => 1.week.from_now) + revoker = create(:moderator_user, :display_name => "Revokator") + create(:moderation_zone, :ends_at => 1.week.ago, :revoker => revoker) + session_for(create(:moderator_user)) get moderation_zones_url assert_response :success + assert_dom "td", :text => "active" + assert_dom "td", :text => "ended" + assert_dom "td", :text => "revoked by Revokator" end test "new, unauthenticated" do -- 2.47.3