From 3261cbefbef108d46fee92646ece9a7822ddb2e5 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Thu, 19 Jun 2025 01:07:04 +0300 Subject: [PATCH] Add older/newer element versions buttons --- app/controllers/old_elements_controller.rb | 2 ++ app/controllers/old_nodes_controller.rb | 7 ++++++- app/controllers/old_relations_controller.rb | 7 ++++++- app/controllers/old_ways_controller.rb | 7 ++++++- app/views/old_elements/index.html.erb | 18 +++++++++++++++++- config/locales/en.yml | 2 ++ 6 files changed, 39 insertions(+), 4 deletions(-) diff --git a/app/controllers/old_elements_controller.rb b/app/controllers/old_elements_controller.rb index 02c999b36..c19ad23af 100644 --- a/app/controllers/old_elements_controller.rb +++ b/app/controllers/old_elements_controller.rb @@ -1,4 +1,6 @@ class OldElementsController < ApplicationController + include PaginationMethods + layout :map_layout before_action :authorize_web diff --git a/app/controllers/old_nodes_controller.rb b/app/controllers/old_nodes_controller.rb index 3b187e4ab..7901e5abf 100644 --- a/app/controllers/old_nodes_controller.rb +++ b/app/controllers/old_nodes_controller.rb @@ -1,7 +1,12 @@ class OldNodesController < OldElementsController def index @type = "node" - @feature = Node.preload(:node_tags, :old_nodes => [:old_tags, { :changeset => [:changeset_tags, :user] }]).find(params[:id]) + @feature = Node.preload(:node_tags).find(params[:id]) + @old_features, @newer_features_version, @older_features_version = get_page_items( + OldNode.where(:node_id => params[:id]), + :cursor_column => :version, + :includes => [:old_tags, { :changeset => [:changeset_tags, :user] }] + ) rescue ActiveRecord::RecordNotFound render "browse/not_found", :status => :not_found end diff --git a/app/controllers/old_relations_controller.rb b/app/controllers/old_relations_controller.rb index ec256d6af..7795b2a0b 100644 --- a/app/controllers/old_relations_controller.rb +++ b/app/controllers/old_relations_controller.rb @@ -1,7 +1,12 @@ 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]) + @feature = Relation.preload(:relation_tags).find(params[:id]) + @old_features, @newer_features_version, @older_features_version = get_page_items( + OldRelation.where(:relation_id => params[:id]), + :cursor_column => :version, + :includes => [:old_tags, { :changeset => [:changeset_tags, :user], :old_members => :member }] + ) rescue ActiveRecord::RecordNotFound render "browse/not_found", :status => :not_found end diff --git a/app/controllers/old_ways_controller.rb b/app/controllers/old_ways_controller.rb index 1b3ebd747..2ea596c49 100644 --- a/app/controllers/old_ways_controller.rb +++ b/app/controllers/old_ways_controller.rb @@ -1,7 +1,12 @@ 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]) + @feature = Way.preload(:way_tags).find(params[:id]) + @old_features, @newer_features_version, @older_features_version = get_page_items( + OldWay.where(:way_id => params[:id]), + :cursor_column => :version, + :includes => [:old_tags, { :changeset => [:changeset_tags, :user], :old_nodes => { :node => [:node_tags, :ways] } }] + ) rescue ActiveRecord::RecordNotFound render "browse/not_found", :status => :not_found end diff --git a/app/views/old_elements/index.html.erb b/app/views/old_elements/index.html.erb index eaf7787fa..a13706d55 100644 --- a/app/views/old_elements/index.html.erb +++ b/app/views/old_elements/index.html.erb @@ -2,7 +2,23 @@ <%= render "sidebar_header", :title => t(".#{@type}.title_html", :name => printable_element_name(@feature)) %> -<%= render :partial => "browse/#{@type}", :collection => @feature.send(:"old_#{@type}s").reverse %> +<% if @newer_features_version %> + +<% end %> + +<%= render :partial => "browse/#{@type}", :collection => @old_features %> + +<% if @older_features_version %> + +<% end %>
<%= link_to t("browse.download_xml"), send(:"api_#{@type}_versions_path", @feature.id) %> diff --git a/config/locales/en.yml b/config/locales/en.yml index dc3e83b6a..6c62a25a7 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -437,6 +437,8 @@ en: title_html: "Way History: %{name}" relation: title_html: "Relation History: %{name}" + older_versions: Older Versions + newer_versions: Newer Versions actions: view_redacted_data: "View Redacted Data" view_redaction_message: "View Redaction Message" -- 2.39.5