Skip to content

An ActiveRecord extension to build date oriented pagination links

License

Notifications You must be signed in to change notification settings

kanety/datewari

Repository files navigation

Datewari

An ActiveRecord extension to build date oriented pagination links such as monthly pages and weekly pages.

Dependencies

  • ruby 2.4+
  • rails 5.0+ (activerecord, activesupport, actionview)

Following ActiveRecord adapters are supported:

  • mysql
  • postgresql

Installation

Add this line to your application's Gemfile:

gem 'datewari'

Then execute:

$ bundle

Usage

Paginate collection by created_at column:

# yearly pagination
users = User.date_paginate(:created_at, :desc, date: '2018-01-01', scope: :yearly)

# monthly pagination
users = User.date_paginate(:created_at, :desc, date: '2018-01-01', scope: :monthly)

# weekly pagination
users = User.date_paginate(:created_at, :desc, date: '2018-01-01', scope: :weekly)

# daily pagination
users = User.date_paginate(:created_at, :desc, date: '2018-01-01', scope: :daily)

Access paginator variables

You can get paginator variables as follows:

# dates of pages
users.paginator.pages

# count of total entries
users.paginator.total_entries

Render pagination links

Render pagination links:

date_paginate users

# with options
date_paginate users, previous_label: 'Prev', next_label: 'Next'

Available options:

  • previous_label: label for previous link.
  • next_label: label for next link.
  • page_gap: label for abbrebiated pages.
  • link_separator: label between pages.
  • yearly_format: date format for yearly pagination.
  • monthly_format: date format for monthly pagination.
  • weekly_format: date format for weekly pagination.
  • daily_format: date format for daily pagination.
  • inner_window: window size around current page link. default: 4.
  • outer_window: window size around first page and last page link. default: 1.
  • page_links: render page links or not. default: true.
  • param_name: query parameter name. default: date.
  • params: optional parameters for page links.
  • renderer: custom link render class.

Render page info

Render page info:

date_page_entries_info users

I18n

I18n default values are as follows:

en:
  date_paginate:
    previous_label: "← Previous"
    next_label: "Next →"
    page_gap: "…"
    link_separator: "|"
    yearly_format: "%Y"
    monthly_format: "%Y-%m"
    weekly_format: "%Y-%m-%d"
    daily_format: "%Y-%m-%d"
    page_entries_info:
      single_page:
        zero: "No items found"
        other: "Displaying <b>%{total}</b> items"
      multi_page: "Displaying <b>%{current}</b> of <b>%{total}</b> in total"

Contributing

Bug reports and pull requests are welcome at https://github.com/kanety/datewari.

License

The gem is available as open source under the terms of the MIT License.

About

An ActiveRecord extension to build date oriented pagination links

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published