sumskyi/padrino-pagination

View on GitHub
views/bootstrap_classic_safe.haml

Summary

Maintainability
Test Coverage
%div
  %ul.pagination
    - if current_page > 1
      %li
        =link_to "‹ First".html_safe, url(controller, action, params.merge("page" => 1)), :class => :first_last

    - if previous_page
      %li
        =link_to "«".html_safe, url(controller, action, params.merge("page" => previous_page)), :class => :prev_next

    - if current_page > 2
      - pages = (current_page + 5 >= total_pages) ? ((current_page - 2)..total_pages) : ((current_page - 2)..(current_page + 5))
    - else
      - pages = (1..(total_pages > 5 ? 5 : total_pages))

    - if current_page > 3
      %li
        %span.current='...'

    - pages.each do |page|
      %li
        - if page == current_page
          %span.current=page
        - else
          =link_to page.to_s.html_safe, url(controller, action, params.merge("page" => page))

    - if current_page + 5 < total_pages
      %li
        %span.current='...'

    - if next_page
      %li
        =link_to "&raquo;".html_safe, url(controller, action, params.merge("page" => next_page)), :class => :prev_next

    - if last_page
      %li
        =link_to "Last &rsaquo;".html_safe, url(controller, action, params.merge("page" => last_page)), :class => :first_last