From b1f595fa6f8d42b132021ee8fb83fa738cbea4f8 Mon Sep 17 00:00:00 2001 From: albert Date: Mon, 25 Feb 2013 21:05:25 -0500 Subject: [PATCH] terminate numbered paginator early if no more records --- app/helpers/pagination_helper.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb index c0c8a2340..c3d7e3950 100644 --- a/app/helpers/pagination_helper.rb +++ b/app/helpers/pagination_helper.rb @@ -29,7 +29,7 @@ module PaginationHelper if records.current_page >= 2 html << "
  • " + link_to("<<", params.merge(:page => records.current_page - 1)) + "
  • " end - + if records.total_pages <= (window * 2) + 5 1.upto(records.total_pages) do |page| html << numbered_paginator_item(page, records.current_page) @@ -50,14 +50,21 @@ module PaginationHelper else html << numbered_paginator_item(1, records.current_page) html << numbered_paginator_item("...", records.current_page) - (records.current_page - window).upto(records.current_page + window) do |page| + if records.size > 0 + right_window = records.current_page + window + else + right_window = records.current_page + end + (records.current_page - window).upto(right_window) do |page| html << numbered_paginator_item(page, records.current_page) end - html << numbered_paginator_item("...", records.current_page) - html << numbered_paginator_final_item(records.total_pages, records.current_page) + if records.size > 0 + html << numbered_paginator_item("...", records.current_page) + html << numbered_paginator_final_item(records.total_pages, records.current_page) + end end - if records.current_page < records.total_pages + if records.current_page < records.total_pages && records.size > 0 html << "
  • " + link_to(">>", params.merge(:page => records.current_page + 1)) + "
  • " end