diff --git a/app/controllers/posts_controller.rb b/app/controllers/posts_controller.rb index a83a572b6..3a13ddb2c 100644 --- a/app/controllers/posts_controller.rb +++ b/app/controllers/posts_controller.rb @@ -4,7 +4,7 @@ class PostsController < ApplicationController respond_to :html, :xml, :json def index - @post_set = PostSets::Post.new(params[:tags], :page => params[:page], :before_id => params[:before_id]) + @post_set = PostSets::Post.new(params[:tags], params) respond_with(@post_set) end diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb new file mode 100644 index 000000000..c7f2ede0a --- /dev/null +++ b/app/helpers/pagination_helper.rb @@ -0,0 +1,78 @@ +module PaginationHelper + def smart_paginator(set, &block) + if set.page && set.page > 1000 + sequential_paginator(set) + else + numbered_paginator(set, &block) + end + end + + def sequential_paginator(set) + html = "
" + html.html_safe + end + + def numbered_paginator(set, &block) + html = "" + html.html_safe + end + + def numbered_paginator_final_item(total_pages, current_page, &block) + if total_pages <= 1000 + numbered_paginator_item(total_pages, current_page, &block) + else + "" + end + end + + def numbered_paginator_item(page, current_page, &block) + html = "