From: Anton Khorev <tony29@yandex.ru> Date: Tue, 3 Oct 2023 16:17:25 +0000 (+0300) Subject: Shorten padding on page items if they are too wide X-Git-Tag: live~1296^2~3 X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/cfa1ce8617430cdec47409a455ea2aead713334e Shorten padding on page items if they are too wide --- diff --git a/app/views/browse/_paging_nav.html.erb b/app/views/browse/_paging_nav.html.erb index cbe8cdefb..778f51a1f 100644 --- a/app/views/browse/_paging_nav.html.erb +++ b/app/views/browse/_paging_nav.html.erb @@ -2,18 +2,32 @@ <h4 class="fs-5 mb-0"><%= heading %></h4> <% if pages.page_count > 1 %> <ul class="pagination pagination-sm mb-1 ms-auto"> - <% pagination_items(pages, {}).each do |body, n| %> - <% linked = !(n.is_a? String) - classes = ["page-item"] - classes.push(n) unless linked %> - <%= content_tag "li", :class => classes do - if linked - link_to(body, url_for(page_param => n), :class => "page-link") - else - content_tag("span", body, :class => "page-link") - end - end %> - <% end %> + <% + max_width_for_default_padding = 35 + + width = 0 + pagination_items(pages, {}).each do |body, n| + width += 2 # padding width + width += body.length + end + link_classes = ["page-link"] + link_classes.push("px-1") if width > max_width_for_default_padding + + pagination_items(pages, {}).each do |body, n| + linked = !(n.is_a? String) + item_classes = ["page-item"] + item_classes.push(n) unless linked + %> + <%= content_tag "li", :class => item_classes do + if linked + link_to(body, url_for(page_param => n), :class => link_classes) + else + content_tag("span", body, :class => link_classes) + end + end %> + <% + end + %> </ul> <% end %> </div>