Add Bootstrap styling to changeset node/way/relation page links
This commit is contained in:
parent
aaed886890
commit
8f57efe850
2 changed files with 57 additions and 5 deletions
|
@ -4,11 +4,7 @@
|
|||
</div>
|
||||
<% if pages.page_count > 1 %>
|
||||
<div class="col-auto">
|
||||
<h4>
|
||||
<span class="border border-lightgrey rounded p-1">
|
||||
<%= raw pagination_links_each(pages, {}) { |n| link_to(n, page_param => n) } %>
|
||||
</span>
|
||||
</h4>
|
||||
<%= raw pagination_links_bootstrap(pages, {}) { |n| url_for(page_param => n) } %>
|
||||
</div>
|
||||
<% end %>
|
||||
</div>
|
||||
|
|
|
@ -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 << "<ul class='pagination pagination-sm'>"
|
||||
|
||||
if always_show_anchors && !(wp_first = window_pages[0]).first?
|
||||
html << bootstrap_page_item(first.number.to_s, yield(first.number))
|
||||
html << bootstrap_page_item("...") if wp_first.number - first.number > 1
|
||||
end
|
||||
|
||||
window_pages.each do |page|
|
||||
html << if current_page == page && !link_to_current_page
|
||||
bootstrap_page_item(page.number.to_s)
|
||||
else
|
||||
bootstrap_page_item(page.number.to_s, yield(page.number))
|
||||
end
|
||||
end
|
||||
|
||||
if always_show_anchors && !(wp_last = window_pages[-1]).last?
|
||||
html << bootstrap_page_item("...") if last.number - wp_last.number > 1
|
||||
html << bootstrap_page_item(last.number.to_s, yield(last.number))
|
||||
end
|
||||
|
||||
html << "</ul>"
|
||||
|
||||
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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue