module PaginationHelper
def sequential_paginator(records)
html = '
"
html.html_safe
end
def use_sequential_paginator?(records)
params[:page] =~ /[ab]/ || records.current_page >= Danbooru.config.max_numbered_pages
end
def numbered_paginator(records, switch_to_sequential = true)
if use_sequential_paginator?(records) && switch_to_sequential
return sequential_paginator(records)
end
html = '"
html.html_safe
end
def numbered_paginator_final_item(total_pages, current_page)
if total_pages <= Danbooru.config.max_numbered_pages
numbered_paginator_item(total_pages, current_page)
else
""
end
end
def numbered_paginator_item(page, current_page)
return "" if page.to_i > Danbooru.config.max_numbered_pages
html = []
if page == "..."
html << ""
html << "..."
html << ""
elsif page == current_page
html << ""
html << '' + page.to_s + ''
html << ""
else
html << ""
html << link_to(page, params.merge(:page => page))
html << ""
end
html.join.html_safe
end
end