From: Tom Hughes Date: Sun, 5 Jan 2025 16:38:12 +0000 (+0000) Subject: Merge remote-tracking branch 'upstream/pull/5464' X-Git-Tag: live~654 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/231177aa29c8c09135d9921956341a5f477cbb7b?hp=6e444155d650e8f164585fe052853d7fadcc743a Merge remote-tracking branch 'upstream/pull/5464' --- diff --git a/app/controllers/old_elements_controller.rb b/app/controllers/old_elements_controller.rb new file mode 100644 index 000000000..02c999b36 --- /dev/null +++ b/app/controllers/old_elements_controller.rb @@ -0,0 +1,19 @@ +class OldElementsController < ApplicationController + layout :map_layout + + before_action :authorize_web + before_action :set_locale + before_action -> { check_database_readable(:need_api => true) } + before_action :require_oauth + + authorize_resource + + before_action :require_moderator_for_unredacted_history + around_action :web_timeout + + private + + def require_moderator_for_unredacted_history + deny_access(nil) if params[:show_redactions] && !current_user&.moderator? + end +end diff --git a/app/controllers/old_nodes_controller.rb b/app/controllers/old_nodes_controller.rb index 596b57967..288322eea 100644 --- a/app/controllers/old_nodes_controller.rb +++ b/app/controllers/old_nodes_controller.rb @@ -1,20 +1,7 @@ -class OldNodesController < ApplicationController - layout :map_layout - - before_action :authorize_web - before_action :set_locale - before_action -> { check_database_readable(:need_api => true) } - before_action :require_oauth - - authorize_resource - - before_action :require_moderator_for_unredacted_history - around_action :web_timeout - +class OldNodesController < OldElementsController def index @type = "node" @feature = Node.preload(:node_tags, :old_nodes => [:old_tags, { :changeset => [:changeset_tags, :user] }]).find(params[:id]) - render "browse/history" rescue ActiveRecord::RecordNotFound render "browse/not_found", :status => :not_found end @@ -25,10 +12,4 @@ class OldNodesController < ApplicationController rescue ActiveRecord::RecordNotFound render :action => "not_found", :status => :not_found end - - private - - def require_moderator_for_unredacted_history - deny_access(nil) if params[:show_redactions] && !current_user&.moderator? - end end diff --git a/app/controllers/old_relations_controller.rb b/app/controllers/old_relations_controller.rb index d57cf25fe..8c73eba24 100644 --- a/app/controllers/old_relations_controller.rb +++ b/app/controllers/old_relations_controller.rb @@ -1,20 +1,7 @@ -class OldRelationsController < ApplicationController - layout :map_layout - - before_action :authorize_web - before_action :set_locale - before_action -> { check_database_readable(:need_api => true) } - before_action :require_oauth - - authorize_resource - - before_action :require_moderator_for_unredacted_history - around_action :web_timeout - +class OldRelationsController < OldElementsController def index @type = "relation" @feature = Relation.preload(:relation_tags, :old_relations => [:old_tags, { :changeset => [:changeset_tags, :user], :old_members => :member }]).find(params[:id]) - render "browse/history" rescue ActiveRecord::RecordNotFound render "browse/not_found", :status => :not_found end @@ -25,10 +12,4 @@ class OldRelationsController < ApplicationController rescue ActiveRecord::RecordNotFound render :action => "not_found", :status => :not_found end - - private - - def require_moderator_for_unredacted_history - deny_access(nil) if params[:show_redactions] && !current_user&.moderator? - end end diff --git a/app/controllers/old_ways_controller.rb b/app/controllers/old_ways_controller.rb index de60de317..e7b0fed6e 100644 --- a/app/controllers/old_ways_controller.rb +++ b/app/controllers/old_ways_controller.rb @@ -1,20 +1,7 @@ -class OldWaysController < ApplicationController - layout :map_layout - - before_action :authorize_web - before_action :set_locale - before_action -> { check_database_readable(:need_api => true) } - before_action :require_oauth - - authorize_resource - - before_action :require_moderator_for_unredacted_history - around_action :web_timeout - +class OldWaysController < OldElementsController def index @type = "way" @feature = Way.preload(:way_tags, :old_ways => [:old_tags, { :changeset => [:changeset_tags, :user], :old_nodes => { :node => [:node_tags, :ways] } }]).find(params[:id]) - render "browse/history" rescue ActiveRecord::RecordNotFound render "browse/not_found", :status => :not_found end @@ -25,10 +12,4 @@ class OldWaysController < ApplicationController rescue ActiveRecord::RecordNotFound render :action => "not_found", :status => :not_found end - - private - - def require_moderator_for_unredacted_history - deny_access(nil) if params[:show_redactions] && !current_user&.moderator? - end end diff --git a/app/views/browse/_version_actions.erb b/app/views/old_elements/_actions.html.erb similarity index 87% rename from app/views/browse/_version_actions.erb rename to app/views/old_elements/_actions.html.erb index 94e18e457..36a16abb4 100644 --- a/app/views/browse/_version_actions.erb +++ b/app/views/old_elements/_actions.html.erb @@ -6,9 +6,9 @@ <% elsif current_user&.moderator? %> · <% if !params[:show_redactions] %> - <%= link_to t("browse.view_redacted_data"), :params => { :show_redactions => true } %> + <%= link_to t(".view_redacted_data"), :params => { :show_redactions => true } %> <% else %> - <%= link_to t("browse.view_redaction_message") %> + <%= link_to t(".view_redaction_message") %> <% end %> <% end %> diff --git a/app/views/browse/history.html.erb b/app/views/old_elements/index.html.erb similarity index 72% rename from app/views/browse/history.html.erb rename to app/views/old_elements/index.html.erb index 1595df021..d4ecbfa60 100644 --- a/app/views/browse/history.html.erb +++ b/app/views/old_elements/index.html.erb @@ -1,6 +1,6 @@ -<% set_title(t("browse.#{@type}.history_title_html", :name => printable_element_name(@feature))) %> +<% set_title(t(".#{@type}.title_html", :name => printable_element_name(@feature))) %> -<%= render "sidebar_header", :title => t("browse.#{@type}.history_title_html", :name => printable_element_name(@feature)) %> +<%= render "sidebar_header", :title => t(".#{@type}.title_html", :name => printable_element_name(@feature)) %> <%= render :partial => "browse/#{@type}", :collection => @feature.send(:"old_#{@type}s").reverse %> diff --git a/app/views/old_nodes/show.html.erb b/app/views/old_nodes/show.html.erb index 093a3e7c1..ad6b75ab1 100644 --- a/app/views/old_nodes/show.html.erb +++ b/app/views/old_nodes/show.html.erb @@ -4,4 +4,4 @@ <%= render :partial => "browse/node", :object => @feature %> -<%= render :partial => "browse/version_actions" %> +<%= render :partial => "actions" %> diff --git a/app/views/old_relations/show.html.erb b/app/views/old_relations/show.html.erb index 94e3674d8..bfed1fb87 100644 --- a/app/views/old_relations/show.html.erb +++ b/app/views/old_relations/show.html.erb @@ -4,4 +4,4 @@ <%= render :partial => "browse/relation", :object => @feature %> -<%= render :partial => "browse/version_actions" %> +<%= render :partial => "actions" %> diff --git a/app/views/old_ways/show.html.erb b/app/views/old_ways/show.html.erb index 1e4d14c80..213ad13b0 100644 --- a/app/views/old_ways/show.html.erb +++ b/app/views/old_ways/show.html.erb @@ -4,4 +4,4 @@ <%= render :partial => "browse/way", :object => @feature %> -<%= render :partial => "browse/version_actions" %> +<%= render :partial => "actions" %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 3fabe13c1..b60549894 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -323,17 +323,13 @@ en: view_history: "View History" view_unredacted_history: "View Unredacted History" view_details: "View Details" - view_redacted_data: "View Redacted Data" - view_redaction_message: "View Redaction Message" location: "Location:" common_details: coordinates_html: "%{latitude}, %{longitude}" node: title_html: "Node: %{name}" - history_title_html: "Node History: %{name}" way: title_html: "Way: %{name}" - history_title_html: "Way History: %{name}" nodes: "Nodes" nodes_count: one: "%{count} node" @@ -343,7 +339,6 @@ en: other: "part of ways %{related_ways}" relation: title_html: "Relation: %{name}" - history_title_html: "Relation History: %{name}" members: "Members" members_count: one: "%{count} member" @@ -402,6 +397,17 @@ en: introduction: "Click on the map to find nearby features." nearby: "Nearby features" enclosing: "Enclosing features" + old_elements: + index: + node: + title_html: "Node History: %{name}" + way: + title_html: "Way History: %{name}" + relation: + title_html: "Relation History: %{name}" + actions: + view_redacted_data: "View Redacted Data" + view_redaction_message: "View Redaction Message" nodes: timeout: sorry: "Sorry, the data for the node with the id %{id} took too long to retrieve." diff --git a/test/controllers/old_nodes_controller_test.rb b/test/controllers/old_nodes_controller_test.rb index abaf30d62..dea546316 100644 --- a/test/controllers/old_nodes_controller_test.rb +++ b/test/controllers/old_nodes_controller_test.rb @@ -14,7 +14,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest def test_history node = create(:node, :with_history) - sidebar_browse_check :node_history_path, node.id, "browse/history" + sidebar_browse_check :node_history_path, node.id, "old_elements/index" assert_select "h4", /^Version/ do assert_select "a[href='#{old_node_path node, 1}']", :text => "1", :count => 1 end @@ -27,7 +27,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest get node_history_path(:id => node) assert_response :success - assert_template "browse/history" + assert_template "old_elements/index" # there are 2 revisions of the redacted node, but only one # should be showing details here. @@ -46,7 +46,7 @@ class OldNodesControllerTest < ActionDispatch::IntegrationTest get node_history_path(:id => node, :params => { :show_redactions => true }) assert_response :success - assert_template "browse/history" + assert_template "old_elements/index" assert_select ".browse-section", 2 assert_select ".browse-section.browse-redacted", 0 diff --git a/test/controllers/old_relations_controller_test.rb b/test/controllers/old_relations_controller_test.rb index f5de706cf..395c89c2c 100644 --- a/test/controllers/old_relations_controller_test.rb +++ b/test/controllers/old_relations_controller_test.rb @@ -14,7 +14,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest def test_history relation = create(:relation, :with_history) - sidebar_browse_check :relation_history_path, relation.id, "browse/history" + sidebar_browse_check :relation_history_path, relation.id, "old_elements/index" assert_select "h4", /^Version/ do assert_select "a[href='#{old_relation_path relation, 1}']", :text => "1", :count => 1 end @@ -29,7 +29,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest get relation_history_path(:id => relation) assert_response :success - assert_template "browse/history" + assert_template "old_elements/index" # there are 4 revisions of the redacted relation, but only 2 # should be showing details here. @@ -48,7 +48,7 @@ class OldRelationsControllerTest < ActionDispatch::IntegrationTest get relation_history_path(:id => relation, :params => { :show_redactions => true }) assert_response :success - assert_template "browse/history" + assert_template "old_elements/index" assert_select ".browse-section", 4 assert_select ".browse-section.browse-redacted", 0 diff --git a/test/controllers/old_ways_controller_test.rb b/test/controllers/old_ways_controller_test.rb index fcc2281b8..57be1943f 100644 --- a/test/controllers/old_ways_controller_test.rb +++ b/test/controllers/old_ways_controller_test.rb @@ -14,7 +14,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest def test_history way = create(:way, :with_history) - sidebar_browse_check :way_history_path, way.id, "browse/history" + sidebar_browse_check :way_history_path, way.id, "old_elements/index" assert_select "h4", /^Version/ do assert_select "a[href='#{old_way_path way, 1}']", :text => "1", :count => 1 end @@ -29,7 +29,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest get way_history_path(:id => way) assert_response :success - assert_template "browse/history" + assert_template "old_elements/index" # there are 4 revisions of the redacted way, but only 2 # should be showing details here. @@ -48,7 +48,7 @@ class OldWaysControllerTest < ActionDispatch::IntegrationTest get way_history_path(:id => way, :params => { :show_redactions => true }) assert_response :success - assert_template "browse/history" + assert_template "old_elements/index" assert_select ".browse-section", 4 assert_select ".browse-section.browse-redacted", 0