X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/b7ce0f09e6a06a62e054b3a1a9978eee88edd5a5..9fc2a5c4e9c2d0bc7df5493b5b74345992aa9dfa:/lib/classic_pagination/pagination_helper.rb diff --git a/lib/classic_pagination/pagination_helper.rb b/lib/classic_pagination/pagination_helper.rb index c691360e0..c450de4e1 100644 --- a/lib/classic_pagination/pagination_helper.rb +++ b/lib/classic_pagination/pagination_helper.rb @@ -131,63 +131,38 @@ module ActionView html end - # Same as above, but - # - with bootstrap classes - # - no list wrapper - # - invoked block returns the page url - def pagination_links_bootstrap(paginator, options) + def pagination_items(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 = "" + items = [] if always_show_anchors && !(wp_first = window_pages[0]).first? - html << bootstrap_page_item_link(first.number.to_s, yield(first.number)) - html << bootstrap_page_item_disabled("...") if wp_first.number - first.number > 1 + items.push [first.number.to_s, first] + items.push ["...", "disabled"] 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_active(page.number.to_s) - else - bootstrap_page_item_link(page.number.to_s, yield(page.number)) - end + if current_page == page && !link_to_current_page + items.push [page.number.to_s, "active"] + else + items.push [page.number.to_s, page] + end end if always_show_anchors && !(wp_last = window_pages[-1]).last? - html << bootstrap_page_item_disabled("...") if last.number - wp_last.number > 1 - html << bootstrap_page_item_link(last.number.to_s, yield(last.number)) + items.push ["...", "disabled"] if last.number - wp_last.number > 1 + items.push [last.number.to_s, last] end - html - end - - private - - def bootstrap_page_item_disabled(body) - content_tag "li", :class => "page-item disabled" do - content_tag "span", body, :class => "page-link" - end - end - - def bootstrap_page_item_active(body) - content_tag "li", :class => "page-item active", :'aria-current' => "page" do - content_tag "span", body, :class => "page-link" - end - end - - def bootstrap_page_item_link(body, url) - content_tag "li", :class => "page-item" do - link_to body, url, :class => "page-link" - end + items end end end