]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/concerns/pagination_methods.rb
Merge remote-tracking branch 'upstream/pull/5401'
[rails.git] / app / controllers / concerns / pagination_methods.rb
index 58b522516618c545a2d1429aaba5675539d51dba..79ab10bfb1a6c9bb8c47937406b2d29952df9c70 100644 (file)
@@ -5,7 +5,10 @@ module PaginationMethods
 
   ##
   # limit selected items to one page, get ids of first item before/after the page
 
   ##
   # limit selected items to one page, get ids of first item before/after the page
-  def get_page_items(items, includes)
+  def get_page_items(items, includes: [], limit: 20)
+    param! :before, Integer, :min => 1
+    param! :after, Integer, :min => 1
+
     id_column = "#{items.table_name}.id"
     page_items = if params[:before]
                    items.where("#{id_column} < ?", params[:before]).order(:id => :desc)
     id_column = "#{items.table_name}.id"
     page_items = if params[:before]
                    items.where("#{id_column} < ?", params[:before]).order(:id => :desc)
@@ -15,7 +18,7 @@ module PaginationMethods
                    items.order(:id => :desc)
                  end
 
                    items.order(:id => :desc)
                  end
 
-    page_items = page_items.limit(20)
+    page_items = page_items.limit(limit)
     page_items = page_items.includes(includes)
     page_items = page_items.sort.reverse
 
     page_items = page_items.includes(includes)
     page_items = page_items.sort.reverse