<%# app/views/shared/_pagination.html.erb %> <% if collection.total_pages > 1 %>
Page <%= collection.current_page %> of <%= collection.total_pages %>
<%= link_to url_for(page: 1, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn #{collection.first_page? ? 'btn-disabled' : 'btn-ghost'}" do %> <% end %> <%= link_to url_for(page: collection.prev_page || 1, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn #{collection.first_page? ? 'btn-disabled' : 'btn-ghost'}" do %> <% end %> <% page_window = 2 # 当前页面前后显示的页码数 %> <% start_page = [1, collection.current_page - page_window].max %> <% end_page = [collection.total_pages, collection.current_page + page_window].min %> <% if start_page > 1 %> <%= link_to 1, url_for(page: 1, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn btn-ghost hover:bg-primary/5" %> <% if start_page > 2 %> <% end %> <% end %> <% (start_page..end_page).each do |page| %> <% if page == collection.current_page %> <% else %> <%= link_to page, url_for(page: page, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn btn-ghost hover:bg-primary/5" %> <% end %> <% end %> <% if end_page < collection.total_pages %> <% if end_page < collection.total_pages - 1 %> <% end %> <%= link_to collection.total_pages, url_for(page: collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn btn-ghost hover:bg-primary/5" %> <% end %> <%= link_to url_for(page: collection.next_page || collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn #{collection.last_page? ? 'btn-disabled' : 'btn-ghost'}" do %> <% end %> <%= link_to url_for(page: collection.total_pages, region: params[:region], country: params[:country], sort: params[:sort]), class: "join-item btn #{collection.last_page? ? 'btn-disabled' : 'btn-ghost'}" do %> <% end %>
Showing <%= collection.offset_value + 1 %> to <%= collection.last_page? ? collection.total_count : collection.offset_value + collection.limit_value %> of <%= collection.total_count %> <%= collection_name || 'items' %>
<% end %>