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, 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) (defaults to: {})

    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
16
17
18
19
20
# File 'lib/datagrid/form_builder.rb', line 11

def datagrid_filter(filter_or_attribute, options = {}, &block)
  filter = datagrid_get_filter(filter_or_attribute)
  options = {
    **filter.input_options,
    **add_html_classes(options, filter.name, datagrid_filter_html_class(filter)),
  }
  # Prevent partials option from appearing in HTML attributes
  options.delete(:partials) # Legacy option
  self.send(filter.form_builder_helper_name, filter, options, &block)
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



26
27
28
29
# File 'lib/datagrid/form_builder.rb', line 26

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