Class: CrudComponents::Fields::DateField
- Inherits:
-
Base
- Object
- Base
- CrudComponents::Fields::DateField
show all
- Defined in:
- lib/crud_components/fields/date_field.rb
Overview
date/datetime column: from–to range plus exact day; datetime ranges are whole-day-inclusive (a ‘leq` of 2026-01-31 includes that entire day).
Constant Summary
Constants inherited
from Base
Base::NON_EDITABLE_COLUMNS
Instance Attribute Summary
Attributes inherited from Base
#facets, #model, #name, #options
Instance Method Summary
collapse
Methods inherited from Base
#apply_filter, #apply_filter_facet, #apply_sort, #column, #custom_header?, #declared_preloads, #eager_load, #editable?, #editable_permitted?, #filter_choices, #filter_control, #filter_facet, #filter_includes_null?, #filterable?, #form_partial, #group_label, #group_model, #header, #header_actions, #human_name, #initialize, #nullable?, #permit_param, #permitted?, #picker_label, #range_filter?, #render_block, #renderer, #renderer_options, #sort_facet, #sortable?, #value
Instance Method Details
#apply_derived_filter(scope, exact: nil, geq: nil, leq: nil) ⇒ Object
17
18
19
20
21
22
|
# File 'lib/crud_components/fields/date_field.rb', line 17
def apply_derived_filter(scope, exact: nil, geq: nil, leq: nil)
if (d = cast(exact)) then scope = apply_day(scope, d) end
if (d = cast(geq)) then scope = scope.where(arel_column.gteq(lower_bound(d))) end
if (d = cast(leq)) then scope = scope.where(arel_column.lteq(upper_bound(d))) end
scope
end
|
#datetime? ⇒ Boolean
6
7
8
|
# File 'lib/crud_components/fields/date_field.rb', line 6
def datetime?
@datetime ||= %i[datetime timestamp timestamptz].include?(model.columns_hash[name.to_s]&.type)
end
|
#default_editable? ⇒ Boolean
14
|
# File 'lib/crud_components/fields/date_field.rb', line 14
def default_editable? = !NON_EDITABLE_COLUMNS.include?(name.to_s)
|
#default_renderer ⇒ Object
10
|
# File 'lib/crud_components/fields/date_field.rb', line 10
def default_renderer = datetime? ? :datetime : :date
|
#derived_filter_control ⇒ Object
13
|
# File 'lib/crud_components/fields/date_field.rb', line 13
def derived_filter_control = :date_range
|
#derived_filterable? ⇒ Boolean
11
|
# File 'lib/crud_components/fields/date_field.rb', line 11
def derived_filterable? = true
|
#derived_sortable? ⇒ Boolean
12
|
# File 'lib/crud_components/fields/date_field.rb', line 12
def derived_sortable? = true
|
15
|
# File 'lib/crud_components/fields/date_field.rb', line 15
def form_control = datetime? ? :datetime : :date
|