]> git.openstreetmap.org Git - rails.git/commitdiff
Show unredacted element history
authorAnton Khorev <tony29@yandex.ru>
Sat, 4 Nov 2023 18:58:04 +0000 (21:58 +0300)
committerAnton Khorev <tony29@yandex.ru>
Fri, 1 Mar 2024 08:21:49 +0000 (11:21 +0300)
app/views/browse/_common_details.html.erb
app/views/browse/_node.html.erb
app/views/browse/_relation.html.erb
app/views/browse/_way.html.erb
config/locales/en.yml
test/controllers/browse_controller_test.rb

index 7d3f8e829c672d3bc0c05ebc1acaf178cfda4e73..195332b099d5ff98c0a4c600a614030033c94067 100644 (file)
@@ -1,5 +1,9 @@
 <h4>
-  <%= t "browse.version" %>
+  <%= if common_details.redacted?
+        t "browse.redacted_version"
+      else
+        t "browse.version"
+      end %>
   #<%= link_to_unless_current common_details.version, :controller => "old_#{@type.pluralize}", :action => :show, :version => common_details.version %>
 </h4>
 
index 6c6c1fdf32a32b12bd09ebfade54e2524b8e708e..e395a4283832c99054de1f2829f37ed025795218 100644 (file)
@@ -1,4 +1,4 @@
-<% if node.redacted? %>
+<% if node.redacted? && !params[:show_redactions] %>
   <div class="browse-section browse-redacted">
     <%= t "browse.redacted.message_html",
           :type => t("browse.redacted.type.node"),
@@ -7,7 +7,7 @@
                                        :id => node.redaction.id), node.redaction) %>
   </div>
 <% else %>
-  <div class="browse-section browse-node">
+  <%= tag.div :class => ["browse-section", "browse-node", { "text-muted" => node.redacted? }] do %>
     <%= render :partial => "browse/common_details", :object => node %>
 
     <% unless node.ways.empty? and node.containing_relation_members.empty? %>
@@ -31,5 +31,5 @@
         </details>
       <% end %>
     <% end %>
-  </div>
+  <% end %>
 <% end %>
index c513ea6d1eba6fd666dfea5c017e268341ec4513..922e642cc76b18f2942f1b1eb9387256b35baf3f 100644 (file)
@@ -1,4 +1,4 @@
-<% if relation.redacted? %>
+<% if relation.redacted? && !params[:show_redactions] %>
   <div class="browse-section browse-redacted">
     <%= t "browse.redacted.message_html",
           :type => t("browse.redacted.type.relation"),
@@ -7,7 +7,7 @@
                                        :id => relation.redaction.id), relation.redaction) %>
   </div>
 <% else %>
-  <div class="browse-section browse-relation">
+  <%= tag.div :class => ["browse-section", "browse-relation", { "text-muted" => relation.redacted? }] do %>
     <%= render :partial => "browse/common_details", :object => relation %>
 
     <% unless relation.containing_relation_members.empty? %>
@@ -29,5 +29,5 @@
         </ul>
       </details>
     <% end %>
-  </div>
+  <% end %>
 <% end %>
index 7197298aca6a5501acd0644d429b020eab4f8169..d93321a0fab98f3b14a93cbf23d3f9267d7076fa 100644 (file)
@@ -1,4 +1,4 @@
-<% if way.redacted? %>
+<% if way.redacted? && !params[:show_redactions] %>
   <div class="browse-section browse-redacted">
     <%= t "browse.redacted.message_html",
           :type => t("browse.redacted.type.way"),
@@ -7,7 +7,7 @@
                                        :id => way.redaction.id), way.redaction) %>
   </div>
 <% else %>
-  <div class="browse-section browse-way">
+  <%= tag.div :class => ["browse-section", "browse-way", { "text-muted" => way.redacted? }] do %>
     <%= render :partial => "browse/common_details", :object => way %>
 
     <% unless way.containing_relation_members.empty? %>
@@ -39,5 +39,5 @@
         </ul>
       </details>
     <% end %>
-  </div>
+  <% end %>
 <% end %>
index a674487a693d347e2ea5d963a1cd73d744d52c9e..32f54387fc2b403f413957b308fcb0dfce86a8b8 100644 (file)
@@ -317,6 +317,7 @@ en:
     deleted_ago_by_html: "Deleted %{time_ago} by %{user}"
     edited_ago_by_html: "Edited %{time_ago} by %{user}"
     version: "Version"
+    redacted_version: "Redacted Version"
     in_changeset: "Changeset"
     anonymous: "anonymous"
     no_comment: "(no comment)"
index a6fd3ef8d65ffcb63cfd241f1d4f857ed7675505..312caca5166352ba8e9cb6c3da0bad378007ab09 100644 (file)
@@ -193,6 +193,21 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
     assert_select ".browse-section.browse-node .longitude", 0
   end
 
+  def test_redacted_node_unredacted_history
+    session_for(create(:moderator_user))
+    node = create(:node, :with_history, :deleted, :version => 2)
+    node_v1 = node.old_nodes.find_by(:version => 1)
+    node_v1.redact!(create(:redaction))
+
+    get node_history_path(:id => node, :params => { :show_redactions => true })
+    assert_response :success
+    assert_template "browse/history"
+
+    assert_select ".browse-section", 2
+    assert_select ".browse-section.browse-redacted", 0
+    assert_select ".browse-section.browse-node", 2
+  end
+
   def test_redacted_way_history
     way = create(:way, :with_history, :version => 4)
     way_v1 = way.old_ways.find_by(:version => 1)
@@ -211,6 +226,23 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
     assert_select ".browse-section.browse-way", 2
   end
 
+  def test_redacted_way_unredacted_history
+    session_for(create(:moderator_user))
+    way = create(:way, :with_history, :version => 4)
+    way_v1 = way.old_ways.find_by(:version => 1)
+    way_v1.redact!(create(:redaction))
+    way_v3 = way.old_ways.find_by(:version => 3)
+    way_v3.redact!(create(:redaction))
+
+    get way_history_path(:id => way, :params => { :show_redactions => true })
+    assert_response :success
+    assert_template "browse/history"
+
+    assert_select ".browse-section", 4
+    assert_select ".browse-section.browse-redacted", 0
+    assert_select ".browse-section.browse-way", 4
+  end
+
   def test_redacted_relation_history
     relation = create(:relation, :with_history, :version => 4)
     relation_v1 = relation.old_relations.find_by(:version => 1)
@@ -229,6 +261,23 @@ class BrowseControllerTest < ActionDispatch::IntegrationTest
     assert_select ".browse-section.browse-relation", 2
   end
 
+  def test_redacted_relation_unredacted_history
+    session_for(create(:moderator_user))
+    relation = create(:relation, :with_history, :version => 4)
+    relation_v1 = relation.old_relations.find_by(:version => 1)
+    relation_v1.redact!(create(:redaction))
+    relation_v3 = relation.old_relations.find_by(:version => 3)
+    relation_v3.redact!(create(:redaction))
+
+    get relation_history_path(:id => relation, :params => { :show_redactions => true })
+    assert_response :success
+    assert_template "browse/history"
+
+    assert_select ".browse-section", 4
+    assert_select ".browse-section.browse-redacted", 0
+    assert_select ".browse-section.browse-relation", 4
+  end
+
   def test_query
     get query_path
     assert_response :success