]> git.openstreetmap.org Git - rails.git/commitdiff
Shorten padding on page items if they are too wide
authorAnton Khorev <tony29@yandex.ru>
Tue, 3 Oct 2023 16:17:25 +0000 (19:17 +0300)
committerAnton Khorev <tony29@yandex.ru>
Thu, 16 Nov 2023 10:21:14 +0000 (13:21 +0300)
app/views/browse/_paging_nav.html.erb

index cbe8cdefbf159a7ee19426bb227f93483ece26e2..778f51a1f8c1591d45dbac7726263da232545d43 100644 (file)
@@ -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>