From b685f6eb2edb5ee7171bc000853dd5980c6bf68b Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sat, 10 Feb 2024 18:04:41 +0300 Subject: [PATCH 1/4] Keep adjacent page icon width integer --- app/helpers/svg_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/svg_helper.rb b/app/helpers/svg_helper.rb index 9c02fc1d9..bc12ff223 100644 --- a/app/helpers/svg_helper.rb +++ b/app/helpers/svg_helper.rb @@ -44,7 +44,7 @@ module SvgHelper height = 15 pad = 2 segment = (0.5 * height) - pad - width = segment + (2 * pad) + width = (segment + (2 * pad)).ceil path_data = "M#{side * (pad - (0.5 * width))},#{pad} l#{side * segment},#{segment} l#{-side * segment},#{segment}" path_tag = tag.path :d => path_data, :fill => "none", :stroke => "currentColor", :"stroke-width" => 1.5 tag.svg path_tag, :width => width, :height => height, :viewBox => "-#{0.5 * width} 0 #{width} #{height}", :class => options[:class] From d430cfb627fb8f329d29d2a12a20b5258e6ae57f Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sat, 10 Feb 2024 18:33:08 +0300 Subject: [PATCH 2/4] Use svg icons in previous/next element version links --- app/helpers/svg_helper.rb | 2 +- app/views/old_nodes/show.html.erb | 10 ++++++++-- app/views/old_relations/show.html.erb | 10 ++++++++-- app/views/old_ways/show.html.erb | 10 ++++++++-- 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/app/helpers/svg_helper.rb b/app/helpers/svg_helper.rb index bc12ff223..ab9f890fe 100644 --- a/app/helpers/svg_helper.rb +++ b/app/helpers/svg_helper.rb @@ -41,7 +41,7 @@ module SvgHelper # returns "<" shape if side == -1; ">" if side == 1 def adjacent_page_svg_tag(side, **options) - height = 15 + height = options[:height] || 15 pad = 2 segment = (0.5 * height) - pad width = (segment + (2 * pad)).ceil diff --git a/app/views/old_nodes/show.html.erb b/app/views/old_nodes/show.html.erb index b69c29723..9220b2cc2 100644 --- a/app/views/old_nodes/show.html.erb +++ b/app/views/old_nodes/show.html.erb @@ -14,12 +14,18 @@
<% if @feature.version > 1 %> - <%= link_to "<< #{t('browse.version')} ##{@feature.version - 1}", old_node_path(@feature.node_id, @feature.version - 1) %> + <%= link_to old_node_path(@feature.node_id, @feature.version - 1), :class => "icon-link" do %> + <%= previous_page_svg_tag :height => 11 %> + <%= "#{t('browse.version')} ##{@feature.version - 1}" %> + <% end %> · <% end %> <%= link_to t("browse.view_history"), node_history_path(@feature.node_id) %> <% if @feature.version < @feature.current_node.version %> · - <%= link_to "#{t('browse.version')} ##{@feature.version + 1} >>", old_node_path(@feature.node_id, @feature.version + 1) %> + <%= link_to old_node_path(@feature.node_id, @feature.version + 1), :class => "icon-link" do %> + <%= "#{t('browse.version')} ##{@feature.version + 1}" %> + <%= next_page_svg_tag :height => 11 %> + <% end %> <% end %>
diff --git a/app/views/old_relations/show.html.erb b/app/views/old_relations/show.html.erb index 29d0b0079..b049a4cf0 100644 --- a/app/views/old_relations/show.html.erb +++ b/app/views/old_relations/show.html.erb @@ -14,12 +14,18 @@
<% if @feature.version > 1 %> - <%= link_to "<< #{t('browse.version')} ##{@feature.version - 1}", old_relation_path(@feature.relation_id, @feature.version - 1) %> + <%= link_to old_relation_path(@feature.relation_id, @feature.version - 1), :class => "icon-link" do %> + <%= previous_page_svg_tag :height => 11 %> + <%= "#{t('browse.version')} ##{@feature.version - 1}" %> + <% end %> · <% end %> <%= link_to t("browse.view_history"), relation_history_path(@feature.relation_id) %> <% if @feature.version < @feature.current_relation.version %> · - <%= link_to "#{t('browse.version')} ##{@feature.version + 1} >>", old_relation_path(@feature.relation_id, @feature.version + 1) %> + <%= link_to old_relation_path(@feature.relation_id, @feature.version + 1), :class => "icon-link" do %> + <%= "#{t('browse.version')} ##{@feature.version + 1}" %> + <%= next_page_svg_tag :height => 11 %> + <% end %> <% end %>
diff --git a/app/views/old_ways/show.html.erb b/app/views/old_ways/show.html.erb index e9976dd78..d128cd2ad 100644 --- a/app/views/old_ways/show.html.erb +++ b/app/views/old_ways/show.html.erb @@ -14,12 +14,18 @@
<% if @feature.version > 1 %> - <%= link_to "<< #{t('browse.version')} ##{@feature.version - 1}", old_way_path(@feature.way_id, @feature.version - 1) %> + <%= link_to old_way_path(@feature.way_id, @feature.version - 1), :class => "icon-link" do %> + <%= previous_page_svg_tag :height => 11 %> + <%= "#{t('browse.version')} ##{@feature.version - 1}" %> + <% end %> · <% end %> <%= link_to t("browse.view_history"), way_history_path(@feature.way_id) %> <% if @feature.version < @feature.current_way.version %> · - <%= link_to "#{t('browse.version')} ##{@feature.version + 1} >>", old_way_path(@feature.way_id, @feature.version + 1) %> + <%= link_to old_way_path(@feature.way_id, @feature.version + 1), :class => "icon-link" do %> + <%= "#{t('browse.version')} ##{@feature.version + 1}" %> + <%= next_page_svg_tag :height => 11 %> + <% end %> <% end %>
From 7918b151d897aaef2be6f56e6b2f913c0c7ff0ca Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sat, 10 Feb 2024 18:37:26 +0300 Subject: [PATCH 3/4] Use svg icons in previous/next changeset links --- app/views/browse/changeset.html.erb | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/views/browse/changeset.html.erb b/app/views/browse/changeset.html.erb index ec4e0c1c2..1b3d245fb 100644 --- a/app/views/browse/changeset.html.erb +++ b/app/views/browse/changeset.html.erb @@ -120,14 +120,20 @@ <% if @next_by_user || @prev_by_user %>
<% if @prev_by_user %> - <%= link_to "<< #{@prev_by_user.id}", :id => @prev_by_user.id %> + <%= link_to({ :id => @prev_by_user.id }, :class => "icon-link") do %> + <%= previous_page_svg_tag :height => 11 %> + <%= @prev_by_user.id %> + <% end %> · <% end %> <%= user = (@prev_by_user || @next_by_user).user.display_name link_to tag.bdi(user), :controller => "changesets", :action => "index", :display_name => user %> <% if @next_by_user %> · - <%= link_to "#{@next_by_user.id} >>", :id => @next_by_user.id %> + <%= link_to({ :id => @next_by_user.id }, :class => "icon-link") do %> + <%= @next_by_user.id %> + <%= next_page_svg_tag :height => 11 %> + <% end %> <% end %>
<% end %> From 8ecb2c79f7146ecbb69d08cd38954836dc6d1b4c Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Sat, 10 Feb 2024 19:19:36 +0300 Subject: [PATCH 4/4] Use svg icons in first/last element version links --- app/helpers/svg_helper.rb | 9 ++++++--- app/views/browse/feature.html.erb | 10 ++++++++-- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/helpers/svg_helper.rb b/app/helpers/svg_helper.rb index ab9f890fe..62b39bf67 100644 --- a/app/helpers/svg_helper.rb +++ b/app/helpers/svg_helper.rb @@ -41,13 +41,16 @@ module SvgHelper # returns "<" shape if side == -1; ">" if side == 1 def adjacent_page_svg_tag(side, **options) + count = options[:count] || 1 height = options[:height] || 15 pad = 2 segment = (0.5 * height) - pad - width = (segment + (2 * pad)).ceil - path_data = "M#{side * (pad - (0.5 * width))},#{pad} l#{side * segment},#{segment} l#{-side * segment},#{segment}" + width = (segment + (2 * count * pad)).ceil + angled_line_data = "l#{side * segment},#{segment} l#{-side * segment},#{segment}" + path_data = Array.new(count) { |i| "M#{side * ((2 * i) + 1) * pad},#{pad} #{angled_line_data}" }.join(" ") path_tag = tag.path :d => path_data, :fill => "none", :stroke => "currentColor", :"stroke-width" => 1.5 - tag.svg path_tag, :width => width, :height => height, :viewBox => "-#{0.5 * width} 0 #{width} #{height}", :class => options[:class] + view_box = "#{-width} 0 #{width} #{height}" if side.negative? + tag.svg path_tag, :width => width, :height => height, :viewBox => view_box, :class => options[:class] end def stroke_attrs(attrs, prefix) diff --git a/app/views/browse/feature.html.erb b/app/views/browse/feature.html.erb index 3b7c64a8d..37be312b1 100644 --- a/app/views/browse/feature.html.erb +++ b/app/views/browse/feature.html.erb @@ -11,12 +11,18 @@ <% end %>
<% if @feature.version > 1 %> - <%= link_to "<< #{t('browse.version')} #1", :controller => "old_#{@type.pluralize}", :action => :show, :version => 1 %> + <%= link_to({ :controller => "old_#{@type.pluralize}", :action => :show, :version => 1 }, :class => "icon-link") do %> + <%= previous_page_svg_tag :height => 11, :count => 2 %> + <%= "#{t('browse.version')} #1" %> + <% end %> · <% end %> <%= link_to t("browse.view_history"), :action => "#{@type}_history" %> <% if @feature.version > 1 %> · - <%= link_to "#{t('browse.version')} ##{@feature.version} >>", :controller => "old_#{@type.pluralize}", :action => :show, :version => @feature.version %> + <%= link_to({ :controller => "old_#{@type.pluralize}", :action => :show, :version => @feature.version }, :class => "icon-link") do %> + <%= "#{t('browse.version')} ##{@feature.version}" %> + <%= next_page_svg_tag :height => 11, :count => 2 %> + <% end %> <% end %>