Module: Datagrid::FormBuilder

Defined in:
lib/datagrid/form_builder.rb

Defined Under Namespace

Classes: Error

Instance Method Summary collapse

Instance Method Details

#datagrid_filter(filter_or_attribute, partials: nil, **options, &block) ⇒ String

Returns a form input html for the corresponding filter name

  • select for enum, xboolean filter types

  • check_box for boolean filter type

  • text_field for other filter types.

Parameters:

  • filter_or_attribute (Datagrid::Filters::BaseFilter, String, Symbol)

    filter object or filter name

  • options (Hash)

    options of rails form input helper

Returns:

  • (String)

    a form input html for the corresponding filter name

    • select for enum, xboolean filter types

    • check_box for boolean filter type

    • text_field for other filter types



11
12
13
14
15
# File 'lib/datagrid/form_builder.rb', line 11

def datagrid_filter(filter_or_attribute, partials: nil, **options, &block)
  filter = datagrid_get_filter(filter_or_attribute)
  options = add_html_classes({**filter.input_options, **options}, filter.name, datagrid_filter_html_class(filter))
  self.send( filter.form_builder_helper_name, filter, **options, &block)
end

#datagrid_filter_input(attribute_or_filter, **options) ⇒ Object



26
27
28
29
30
31
32
33
34
# File 'lib/datagrid/form_builder.rb', line 26

def datagrid_filter_input(attribute_or_filter, **options)
  filter = datagrid_get_filter(attribute_or_filter)
  value = object.filter_value_as_string(filter)
  if options[:type]&.to_sym == :textarea
    text_area filter.name, value: value, **options, type: nil
  else
    text_field filter.name, value: value, **options
  end
end

#datagrid_label(filter_or_attribute, text = nil, **options, &block) ⇒ String

Returns a form label html for the corresponding filter name.

Parameters:

  • filter_or_attribute (Datagrid::Filters::BaseFilter, String, Symbol)

    filter object or filter name

  • text (String, nil) (defaults to: nil)

    label text, defaults to filter.header

  • options (Hash)

    options of rails label helper

Returns:

  • (String)

    a form label html for the corresponding filter name



21
22
23
24
# File 'lib/datagrid/form_builder.rb', line 21

def datagrid_label(filter_or_attribute, text = nil, **options, &block)
  filter = datagrid_get_filter(filter_or_attribute)
  label(filter.name, text || filter.header, **filter.label_options, **options, &block)
end