Class: ActiveAdmin::Views::IndexAsCalendar
- Inherits:
-
Component
- Object
- Component
- ActiveAdmin::Views::IndexAsCalendar
- Defined in:
- lib/activeadmin_calendar/index_as_calendar.rb
Overview
Index as a Calendar
Render the index page as a month calendar grid. Resources are bucketed into day cells by a configurable attribute (default: ‘updated_at`) or via a custom scope.
index as: :calendar, group_by: :paid_at do |date, payments|
ul { payments.each { |p| li p.amount } }
end
For pre-bucketed scopes (when the group-by column is not on the table or needs custom SQL) pass ‘:group_by_scope`:
scope :on_date, ->(date) { where(paid_at: date.all_day) }
index as: :calendar, group_by_scope: :on_date do |date, items|
# ...
end
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.index_name ⇒ Object
23 24 25 |
# File 'lib/activeadmin_calendar/index_as_calendar.rb', line 23 def self.index_name "calendar" end |
Instance Method Details
#build(page_presenter, collection) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/activeadmin_calendar/index_as_calendar.rb', line 27 def build(page_presenter, collection) @page_presenter = page_presenter @collection = collection prefetch_month_records! build_calendar end |
#group_by ⇒ Object
34 35 36 |
# File 'lib/activeadmin_calendar/index_as_calendar.rb', line 34 def group_by @page_presenter[:group_by] || :updated_at end |
#group_by_scope ⇒ Object
38 39 40 |
# File 'lib/activeadmin_calendar/index_as_calendar.rb', line 38 def group_by_scope @page_presenter[:group_by_scope] end |