Sha256: bcc4251b40a33e2051815074bf2a4f2c23ac666d390520064fd773378cfd3fbb

Contents?: true

Size: 574 Bytes

Versions: 10

Compression:

Stored size: 574 Bytes

Contents

# frozen_string_literal: true

require "active_support/concern"

module Decidim
  # Common logic to paginate resources
  module Paginable
    extend ActiveSupport::Concern

    OPTIONS = [20, 50, 100].freeze

    included do
      helper_method :per_page, :page_offset
      helper Decidim::PaginateHelper

      def paginate(resources)
        resources.page(params[:page]).per(per_page)
      end

      def per_page
        params[:per_page] || OPTIONS.first
      end

      def page_offset
        [params[:page].to_i - 1, 0].max * per_page
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
decidim-core-0.23.6 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.5 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.24.0.rc2 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.4 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.24.0.rc1 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.3 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.2 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.1 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.1.rc1 app/controllers/concerns/decidim/paginable.rb
decidim-core-0.23.0 app/controllers/concerns/decidim/paginable.rb