From 8f57efe850bf9805d9bfb073d16d4cf1d06882f5 Mon Sep 17 00:00:00 2001 From: Anton Khorev Date: Tue, 3 Oct 2023 05:00:17 +0300 Subject: [PATCH] Add Bootstrap styling to changeset node/way/relation page links --- app/views/browse/_paging_nav.html.erb | 6 +-- lib/classic_pagination/pagination_helper.rb | 56 +++++++++++++++++++++ 2 files changed, 57 insertions(+), 5 deletions(-) diff --git a/app/views/browse/_paging_nav.html.erb b/app/views/browse/_paging_nav.html.erb index e13b1a9b8..02a7aa2c8 100644 --- a/app/views/browse/_paging_nav.html.erb +++ b/app/views/browse/_paging_nav.html.erb @@ -4,11 +4,7 @@ <% if pages.page_count > 1 %>
-

- - <%= raw pagination_links_each(pages, {}) { |n| link_to(n, page_param => n) } %> - -

+ <%= raw pagination_links_bootstrap(pages, {}) { |n| url_for(page_param => n) } %>
<% end %> diff --git a/lib/classic_pagination/pagination_helper.rb b/lib/classic_pagination/pagination_helper.rb index 3ff3c3b95..ed65944bc 100644 --- a/lib/classic_pagination/pagination_helper.rb +++ b/lib/classic_pagination/pagination_helper.rb @@ -130,6 +130,62 @@ module ActionView html end + + # Same as above, but + # - with bootstrap classes + # - invoked block returns the page url + def pagination_links_bootstrap(paginator, options) + options = DEFAULT_OPTIONS.merge(options) + link_to_current_page = options[:link_to_current_page] + always_show_anchors = options[:always_show_anchors] + + current_page = paginator.current_page + window_pages = current_page.window(options[:window_size]).pages + return unless link_to_current_page || window_pages.length > 1 + + first = paginator.first + last = paginator.last + + html = "" + + html << "" + + html + end + + private + + def bootstrap_page_item(body, url = nil) + if url + content_tag "li", :class => "page-item" do + link_to body, url, :class => "page-link" + end + else + content_tag "li", :class => "page-item disabled" do + content_tag "a", body, :class => "page-link" + end + end + end end end end -- 2.39.5