-
-
Save purcell/1205828 to your computer and use it in GitHub Desktop.
# Based on https://gist.github.com/1182136 | |
class BootstrapLinkRenderer < ::WillPaginate::ActionView::LinkRenderer | |
protected | |
def html_container(html) | |
tag :div, tag(:ul, html), container_attributes | |
end | |
def page_number(page) | |
tag :li, link(page, page, :rel => rel_value(page)), :class => ('active' if page == current_page) | |
end | |
def gap | |
tag :li, link(super, '#'), :class => 'disabled' | |
end | |
def previous_or_next_page(page, text, classname) | |
tag :li, link(text, page || '#'), :class => [classname[0..3], classname, ('disabled' unless page)].join(' ') | |
end | |
end | |
def page_navigation_links(pages) | |
will_paginate(pages, :class => 'pagination', :inner_window => 2, :outer_window => 0, :renderer => BootstrapLinkRenderer, :previous_label => '←'.html_safe, :next_label => '→'.html_safe) | |
end |
In the latest will_paginate, the correct superclass for the BootstrapLinkRenderer is instead:
::WillPaginate::ActionView::LinkRenderer
I'd update the gist to reflect this, but I'm in a rush right now. :-)
Thanks, much appreciated.
fixed here: https://gist.github.com/1350826
Doh, if I'd seen the "Edit" button, I'd have fixed it right away. More coffee needed...
Cheers!
Do I have to call this helper in a different way? Or should it just work? Currently when I put this in my application helper file and restart my server I do not get the pagination wrapped in the ul and li elements that bootstrap likes.
Thanks!
See the page_navigation_links
helper function above for how to generate the full bootstrap-style html.
-Steve
Thanks for the quick answer Steve!
I have replaced "will_paginate @feeditems" in my view with
<%= page_navigation_links @feed_items %>
I get an error of: NotImplementedError in Pages#home
Forgive my ignorance. Just now making my first rails app. Thanks for any help!
Yep, see @thatfunkymunki's comments and modified version above. I should really go ahead and update this gist to incorporate his changes.
Thanks much for your help!
<%= page_navigation_links @users %> worked for me!
@fellytone84 - Glad it worked for you.
I've updated this gist to directly reflect @thatfunkymunki's fixes here...
@purcell I've just added classname option to page_navigation_links, now it can support Bootstrap 2.0's flexible alignment option: .pagination-center, .pagination-right, default option is pagination.
Thanks, works great!
how do you specify that a link is remote, and how about specifying the params hash? There's no way to pass in those parameters to "page_navigation_links". For example, I need to pass in=> :remote => true.
@bertomartin There's nothing stopping you from changing the definition of page_navigation_links
so that it allows you to merge in extra options.
@purcell, I tried doing that. Had a problem though, but I'll look into it again (very late last night). Thanks for this script.
Very nice. Thanks!
worked out well. thanks!
Worked like a charm, thanks!
this was great. i didn't want to use a gem, and this gist just nails it. thanks a lot!
It worked like a charm! Thank you!
But one thing, all this is not about LESS or SASS. I'm working with SASS and no problem at all. Maybe you can consider to change gist's title.
This worked beautifully thanks!
Thank you! It works perfect! 😄
I get a NotImplementedError when I use this, relevant part of stack trace:
Is this a version error (i.e. should i go down some versions in will_paginate)?