From e56b3644f4de6320cddb3663308d545ecb1fbc15 Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 18:00:33 -0700 Subject: [PATCH 1/7] changed the helper --- README.rdoc | 4 ++-- app/helpers/pagination_helper.rb | 5 +++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/README.rdoc b/README.rdoc index e278a1a..d3166bc 100644 --- a/README.rdoc +++ b/README.rdoc @@ -15,11 +15,11 @@ copy it to your mounted app in Padrino app In your template: - = paginate('posts', 7890, :current_page => 1) + = paginate(:posts, :index, 7890, :current_page => 1) or with options: - = paginate(:articles, total, :current_page => page, :per_page => 12, :template => :brutal) + = paginate(:articles, :list, total, :current_page => page, :per_page => 12, :template => :brutal) == Options: diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb index 2c3ebe9..dfc50b8 100644 --- a/app/helpers/pagination_helper.rb +++ b/app/helpers/pagination_helper.rb @@ -1,12 +1,13 @@ PadrinoDybil.helpers do - def paginate(link, total, opts) + def paginate(controller, action, total, opts) opts = { :current_page => 1, :per_page => 20, :template => 'punbb' # 'extended', 'classic', 'brutal', 'digg' }.merge!(opts) - opts[:link] = link + opts[:controller] = controller + opts[:action] = action opts[:total_pages] = (total/opts[:per_page].to_f).ceil From c7744b2813dcca071661d95c3d978f9a7d044dec Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 18:02:00 -0700 Subject: [PATCH 2/7] updated README.rdoc --- README.rdoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.rdoc b/README.rdoc index d3166bc..540a99b 100644 --- a/README.rdoc +++ b/README.rdoc @@ -24,6 +24,8 @@ or with options: == Options: +The helper uses the link style of url(:controller, :action, :page => page) so that way it can be flexible for your controller schema. + current_page:: current page (default 1) per_page:: items per page (default 20) template:: used template (brutal / classic / digg / extended / punbb) From aa370c0d5f2a27da62ea85c6f466f5d48550a457 Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 18:13:01 -0700 Subject: [PATCH 3/7] updated all of the views --- app/views/shared/pagination/_brutal.haml | 2 +- app/views/shared/pagination/_classic.haml | 10 ++++---- app/views/shared/pagination/_digg.haml | 28 +++++++++++----------- app/views/shared/pagination/_extended.haml | 4 ++-- app/views/shared/pagination/_punbb.haml | 6 ++--- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app/views/shared/pagination/_brutal.haml b/app/views/shared/pagination/_brutal.haml index dddde9b..ee3bc53 100644 --- a/app/views/shared/pagination/_brutal.haml +++ b/app/views/shared/pagination/_brutal.haml @@ -1,2 +1,2 @@ - (1..total_pages).each do |page| - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) diff --git a/app/views/shared/pagination/_classic.haml b/app/views/shared/pagination/_classic.haml index 25c579e..52bc05c 100644 --- a/app/views/shared/pagination/_classic.haml +++ b/app/views/shared/pagination/_classic.haml @@ -1,17 +1,17 @@ - if current_page > 1 - =link_to "‹ First", "/#{link}/1" + =link_to "‹ First", url(controller, action, :page => 1) - if previous_page - =link_to "«", "/#{link}/#{previous_page}" + =link_to "«", url(controller, action, :page => previous_page) - (1..total_pages).each do |page| - if page == current_page = page - else - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) - if next_page - =link_to '»', "/#{link}/#{next_page}" + =link_to '»', url(controller, action, :page => next_page) - if last_page - =link_to 'Last ›', "/#{link}/#{last_page}" + =link_to 'Last ›', url(controller, action, :page => last_page) diff --git a/app/views/shared/pagination/_digg.haml b/app/views/shared/pagination/_digg.haml index 3f73043..215b75e 100644 --- a/app/views/shared/pagination/_digg.haml +++ b/app/views/shared/pagination/_digg.haml @@ -1,5 +1,5 @@ - if previous_page - =link_to '« Prev', "/#{link}/#{previous_page}" + =link_to '« Prev', url(controller, action, :page => previous_page) - else « Prev @@ -8,42 +8,42 @@ - if page == current_page = page - else - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) - elsif current_page < 9 - (1..10).each do |page| - if page == current_page = page - else - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) … - =link_to total_pages-1, "/#{link}/#{total_pages-1}" - =link_to total_pages, "/#{link}/#{total_pages}" + =link_to total_pages-1, url(controller, action, :page => total_pages-1) + =link_to total_pages, url(controller, action, :page => total_pages) - elsif current_page > total_pages - 8 - =link_to 1, "/#{link}/1" - =link_to 2, "/#{link}/2" + =link_to 1, url(controller, action, :page => 1) + =link_to 2, url(controller, action, :page => 2) … - (total_pages-9..total_pages).each do |page| - if page == current_page = page - else - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) - else - =link_to 1, "/#{link}/1" - =link_to 2, "/#{link}/2" + =link_to 1, url(controller, action, :page => 1) + =link_to 2, url(controller, action, :page => 2) … - (current_page-5..current_page+5).each do |page| - if page == current_page = page - else - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) … - =link_to total_pages-1, "/#{link}/#{total_pages-1}" - =link_to total_pages, "/#{link}/#{total_pages}" + =link_to total_pages-1, url(controller, action, :page => total_pages-1) + =link_to total_pages, url(controller, action, :page => total_pages) - if next_page - =link_to 'Next »', "/#{link}/#{next_page}" + =link_to 'Next »', url(controller, action, :page => next_page) - else Next » diff --git a/app/views/shared/pagination/_extended.haml b/app/views/shared/pagination/_extended.haml index 1b1a59d..5bf304a 100644 --- a/app/views/shared/pagination/_extended.haml +++ b/app/views/shared/pagination/_extended.haml @@ -1,11 +1,11 @@ - if previous_page - =link_to '« Prev', "/#{link}/#{previous_page}" + =link_to '« Prev', url(controller, action, :page => previous_page) - else « Prev | Page #{current_page} of #{total_pages} | items #{current_first_item} – #{current_last_item} of #{total_items} - if next_page - =link_to 'Next »', "/#{link}/#{next_page}" + =link_to 'Next »', url(controller, action, :page => next_page) - else Next » diff --git a/app/views/shared/pagination/_punbb.haml b/app/views/shared/pagination/_punbb.haml index 2fc18f9..b0db01c 100644 --- a/app/views/shared/pagination/_punbb.haml +++ b/app/views/shared/pagination/_punbb.haml @@ -1,6 +1,6 @@ Pages: - if current_page > 3 - =link_to 1, "/#{link}/1" + =link_to 1, url(controller, action, :page => 1) - if current_page != 4 … @@ -9,10 +9,10 @@ Pages: - if page == current_page = page - else - =link_to page, "/#{link}/#{page}" + =link_to page, url(controller, action, :page => page) - if current_page <= total_pages-3 - if current_page != total_pages-3 … - =link_to total_pages, "/#{link}/#{total_pages}" + =link_to total_pages, url(controller, action, :page => total_pages) From 8574dea7629e9c1df28fd14b9a081ae604eb41b5 Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 18:17:05 -0700 Subject: [PATCH 4/7] updated readme further --- README.rdoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.rdoc b/README.rdoc index 540a99b..2401d30 100644 --- a/README.rdoc +++ b/README.rdoc @@ -11,7 +11,7 @@ HAML pagination templates for Padrino framework: == Usage -copy it to your mounted app in Padrino app +Copy it to your mounted app in Padrino app. Make sure to change app/helpers/pagination_helper.rb to use your application name. In your template: From 595b96c202c94379df09306f2c19a0ae404e1cce Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 19:15:18 -0700 Subject: [PATCH 5/7] added params support --- app/helpers/pagination_helper.rb | 2 +- app/views/shared/pagination/_brutal.haml | 2 +- app/views/shared/pagination/_classic.haml | 10 ++++---- app/views/shared/pagination/_digg.haml | 28 +++++++++++----------- app/views/shared/pagination/_extended.haml | 4 ++-- app/views/shared/pagination/_punbb.haml | 6 ++--- 6 files changed, 26 insertions(+), 26 deletions(-) diff --git a/app/helpers/pagination_helper.rb b/app/helpers/pagination_helper.rb index dfc50b8..db686f7 100644 --- a/app/helpers/pagination_helper.rb +++ b/app/helpers/pagination_helper.rb @@ -8,7 +8,7 @@ def paginate(controller, action, total, opts) opts[:controller] = controller opts[:action] = action - + opts[:total_pages] = (total/opts[:per_page].to_f).ceil opts[:previous_page] = opts[:current_page] <= 1 ? nil : opts[:current_page] - 1 diff --git a/app/views/shared/pagination/_brutal.haml b/app/views/shared/pagination/_brutal.haml index ee3bc53..7efc25a 100644 --- a/app/views/shared/pagination/_brutal.haml +++ b/app/views/shared/pagination/_brutal.haml @@ -1,2 +1,2 @@ - (1..total_pages).each do |page| - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) diff --git a/app/views/shared/pagination/_classic.haml b/app/views/shared/pagination/_classic.haml index 52bc05c..772eef5 100644 --- a/app/views/shared/pagination/_classic.haml +++ b/app/views/shared/pagination/_classic.haml @@ -1,17 +1,17 @@ - if current_page > 1 - =link_to "‹ First", url(controller, action, :page => 1) + =link_to "‹ First", url(controller, action, params.merge(:page => )1) - if previous_page - =link_to "«", url(controller, action, :page => previous_page) + =link_to "«", url(controller, action, params.merge(:page => previous_page)) - (1..total_pages).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) - if next_page - =link_to '»', url(controller, action, :page => next_page) + =link_to '»', url(controller, action, params.merge(:page => next_page)) - if last_page - =link_to 'Last ›', url(controller, action, :page => last_page) + =link_to 'Last ›', url(controller, action, params.merge(:page => last_page)) diff --git a/app/views/shared/pagination/_digg.haml b/app/views/shared/pagination/_digg.haml index 215b75e..e21add6 100644 --- a/app/views/shared/pagination/_digg.haml +++ b/app/views/shared/pagination/_digg.haml @@ -1,5 +1,5 @@ - if previous_page - =link_to '« Prev', url(controller, action, :page => previous_page) + =link_to '« Prev', url(controller, action, params.merge(:page => previous_page)) - else « Prev @@ -8,42 +8,42 @@ - if page == current_page = page - else - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) - elsif current_page < 9 - (1..10).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) … - =link_to total_pages-1, url(controller, action, :page => total_pages-1) - =link_to total_pages, url(controller, action, :page => total_pages) + =link_to total_pages-1, url(controller, action, params.merge(:page => total_pages)-1) + =link_to total_pages, url(controller, action, params.merge(:page => total_pages)) - elsif current_page > total_pages - 8 - =link_to 1, url(controller, action, :page => 1) - =link_to 2, url(controller, action, :page => 2) + =link_to 1, url(controller, action, params.merge(:page => )1) + =link_to 2, url(controller, action, params.merge(:page => )2) … - (total_pages-9..total_pages).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) - else - =link_to 1, url(controller, action, :page => 1) - =link_to 2, url(controller, action, :page => 2) + =link_to 1, url(controller, action, params.merge(:page => )1) + =link_to 2, url(controller, action, params.merge(:page => )2) … - (current_page-5..current_page+5).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) … - =link_to total_pages-1, url(controller, action, :page => total_pages-1) - =link_to total_pages, url(controller, action, :page => total_pages) + =link_to total_pages-1, url(controller, action, params.merge(:page => total_pages)-1) + =link_to total_pages, url(controller, action, params.merge(:page => total_pages)) - if next_page - =link_to 'Next »', url(controller, action, :page => next_page) + =link_to 'Next »', url(controller, action, params.merge(:page => next_page)) - else Next » diff --git a/app/views/shared/pagination/_extended.haml b/app/views/shared/pagination/_extended.haml index 5bf304a..83f4d57 100644 --- a/app/views/shared/pagination/_extended.haml +++ b/app/views/shared/pagination/_extended.haml @@ -1,11 +1,11 @@ - if previous_page - =link_to '« Prev', url(controller, action, :page => previous_page) + =link_to '« Prev', url(controller, action, params.merge(:page => previous_page)) - else « Prev | Page #{current_page} of #{total_pages} | items #{current_first_item} – #{current_last_item} of #{total_items} - if next_page - =link_to 'Next »', url(controller, action, :page => next_page) + =link_to 'Next »', url(controller, action, params.merge(:page => next_page)) - else Next » diff --git a/app/views/shared/pagination/_punbb.haml b/app/views/shared/pagination/_punbb.haml index b0db01c..f3d0929 100644 --- a/app/views/shared/pagination/_punbb.haml +++ b/app/views/shared/pagination/_punbb.haml @@ -1,6 +1,6 @@ Pages: - if current_page > 3 - =link_to 1, url(controller, action, :page => 1) + =link_to 1, url(controller, action, params.merge(:page => )1) - if current_page != 4 … @@ -9,10 +9,10 @@ Pages: - if page == current_page = page - else - =link_to page, url(controller, action, :page => page) + =link_to page, url(controller, action, params.merge(:page => page)) - if current_page <= total_pages-3 - if current_page != total_pages-3 … - =link_to total_pages, url(controller, action, :page => total_pages) + =link_to total_pages, url(controller, action, params.merge(:page => total_pages)) From 02ee42cb66519dd0f731ef2f712214679de4a40e Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 19:51:05 -0700 Subject: [PATCH 6/7] fixed this --- app/views/shared/pagination/_brutal.haml | 2 +- app/views/shared/pagination/_classic.haml | 10 ++++---- app/views/shared/pagination/_digg.haml | 28 +++++++++++----------- app/views/shared/pagination/_extended.haml | 4 ++-- app/views/shared/pagination/_punbb.haml | 6 ++--- 5 files changed, 25 insertions(+), 25 deletions(-) diff --git a/app/views/shared/pagination/_brutal.haml b/app/views/shared/pagination/_brutal.haml index 7efc25a..67bc70a 100644 --- a/app/views/shared/pagination/_brutal.haml +++ b/app/views/shared/pagination/_brutal.haml @@ -1,2 +1,2 @@ - (1..total_pages).each do |page| - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) diff --git a/app/views/shared/pagination/_classic.haml b/app/views/shared/pagination/_classic.haml index 772eef5..32b1a4c 100644 --- a/app/views/shared/pagination/_classic.haml +++ b/app/views/shared/pagination/_classic.haml @@ -1,17 +1,17 @@ - if current_page > 1 - =link_to "‹ First", url(controller, action, params.merge(:page => )1) + =link_to "‹ First", url(controller, action, params.merge("page" => )1) - if previous_page - =link_to "«", url(controller, action, params.merge(:page => previous_page)) + =link_to "«", url(controller, action, params.merge("page" => previous_page)) - (1..total_pages).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) - if next_page - =link_to '»', url(controller, action, params.merge(:page => next_page)) + =link_to '»', url(controller, action, params.merge("page" => next_page)) - if last_page - =link_to 'Last ›', url(controller, action, params.merge(:page => last_page)) + =link_to 'Last ›', url(controller, action, params.merge("page" => last_page)) diff --git a/app/views/shared/pagination/_digg.haml b/app/views/shared/pagination/_digg.haml index e21add6..c2c05f0 100644 --- a/app/views/shared/pagination/_digg.haml +++ b/app/views/shared/pagination/_digg.haml @@ -1,5 +1,5 @@ - if previous_page - =link_to '« Prev', url(controller, action, params.merge(:page => previous_page)) + =link_to '« Prev', url(controller, action, params.merge("page" => previous_page)) - else « Prev @@ -8,42 +8,42 @@ - if page == current_page = page - else - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) - elsif current_page < 9 - (1..10).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) … - =link_to total_pages-1, url(controller, action, params.merge(:page => total_pages)-1) - =link_to total_pages, url(controller, action, params.merge(:page => total_pages)) + =link_to total_pages-1, url(controller, action, params.merge("page" => total_pages)-1) + =link_to total_pages, url(controller, action, params.merge("page" => total_pages)) - elsif current_page > total_pages - 8 - =link_to 1, url(controller, action, params.merge(:page => )1) - =link_to 2, url(controller, action, params.merge(:page => )2) + =link_to 1, url(controller, action, params.merge("page" => )1) + =link_to 2, url(controller, action, params.merge("page" => )2) … - (total_pages-9..total_pages).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) - else - =link_to 1, url(controller, action, params.merge(:page => )1) - =link_to 2, url(controller, action, params.merge(:page => )2) + =link_to 1, url(controller, action, params.merge("page" => )1) + =link_to 2, url(controller, action, params.merge("page" => )2) … - (current_page-5..current_page+5).each do |page| - if page == current_page = page - else - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) … - =link_to total_pages-1, url(controller, action, params.merge(:page => total_pages)-1) - =link_to total_pages, url(controller, action, params.merge(:page => total_pages)) + =link_to total_pages-1, url(controller, action, params.merge("page" => total_pages)-1) + =link_to total_pages, url(controller, action, params.merge("page" => total_pages)) - if next_page - =link_to 'Next »', url(controller, action, params.merge(:page => next_page)) + =link_to 'Next »', url(controller, action, params.merge("page" => next_page)) - else Next » diff --git a/app/views/shared/pagination/_extended.haml b/app/views/shared/pagination/_extended.haml index 83f4d57..50bf9ec 100644 --- a/app/views/shared/pagination/_extended.haml +++ b/app/views/shared/pagination/_extended.haml @@ -1,11 +1,11 @@ - if previous_page - =link_to '« Prev', url(controller, action, params.merge(:page => previous_page)) + =link_to '« Prev', url(controller, action, params.merge("page" => previous_page)) - else « Prev | Page #{current_page} of #{total_pages} | items #{current_first_item} – #{current_last_item} of #{total_items} - if next_page - =link_to 'Next »', url(controller, action, params.merge(:page => next_page)) + =link_to 'Next »', url(controller, action, params.merge("page" => next_page)) - else Next » diff --git a/app/views/shared/pagination/_punbb.haml b/app/views/shared/pagination/_punbb.haml index f3d0929..f4521ef 100644 --- a/app/views/shared/pagination/_punbb.haml +++ b/app/views/shared/pagination/_punbb.haml @@ -1,6 +1,6 @@ Pages: - if current_page > 3 - =link_to 1, url(controller, action, params.merge(:page => )1) + =link_to 1, url(controller, action, params.merge("page" => )1) - if current_page != 4 … @@ -9,10 +9,10 @@ Pages: - if page == current_page = page - else - =link_to page, url(controller, action, params.merge(:page => page)) + =link_to page, url(controller, action, params.merge("page" => page)) - if current_page <= total_pages-3 - if current_page != total_pages-3 … - =link_to total_pages, url(controller, action, params.merge(:page => total_pages)) + =link_to total_pages, url(controller, action, params.merge("page" => total_pages)) From e6ff1ca0484de3b5171f82f9fcac12f90340d7f6 Mon Sep 17 00:00:00 2001 From: Phips Peter Date: Fri, 1 Jul 2011 19:52:02 -0700 Subject: [PATCH 7/7] actually fixed --- app/views/shared/pagination/_classic.haml | 2 +- app/views/shared/pagination/_digg.haml | 8 ++++---- app/views/shared/pagination/_punbb.haml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/shared/pagination/_classic.haml b/app/views/shared/pagination/_classic.haml index 32b1a4c..76b9481 100644 --- a/app/views/shared/pagination/_classic.haml +++ b/app/views/shared/pagination/_classic.haml @@ -1,5 +1,5 @@ - if current_page > 1 - =link_to "‹ First", url(controller, action, params.merge("page" => )1) + =link_to "‹ First", url(controller, action, params.merge("page" => 1)) - if previous_page =link_to "«", url(controller, action, params.merge("page" => previous_page)) diff --git a/app/views/shared/pagination/_digg.haml b/app/views/shared/pagination/_digg.haml index c2c05f0..3599486 100644 --- a/app/views/shared/pagination/_digg.haml +++ b/app/views/shared/pagination/_digg.haml @@ -21,8 +21,8 @@ =link_to total_pages, url(controller, action, params.merge("page" => total_pages)) - elsif current_page > total_pages - 8 - =link_to 1, url(controller, action, params.merge("page" => )1) - =link_to 2, url(controller, action, params.merge("page" => )2) + =link_to 1, url(controller, action, params.merge("page" => 1)) + =link_to 2, url(controller, action, params.merge("page" => 2)) … - (total_pages-9..total_pages).each do |page| - if page == current_page @@ -31,8 +31,8 @@ =link_to page, url(controller, action, params.merge("page" => page)) - else - =link_to 1, url(controller, action, params.merge("page" => )1) - =link_to 2, url(controller, action, params.merge("page" => )2) + =link_to 1, url(controller, action, params.merge("page" => 1)) + =link_to 2, url(controller, action, params.merge("page" => 2)) … - (current_page-5..current_page+5).each do |page| - if page == current_page diff --git a/app/views/shared/pagination/_punbb.haml b/app/views/shared/pagination/_punbb.haml index f4521ef..3b4a78b 100644 --- a/app/views/shared/pagination/_punbb.haml +++ b/app/views/shared/pagination/_punbb.haml @@ -1,6 +1,6 @@ Pages: - if current_page > 3 - =link_to 1, url(controller, action, params.merge("page" => )1) + =link_to 1, url(controller, action, params.merge("page" => 1)) - if current_page != 4 …