Class: ReportsKit::FormBuilder
- Inherits:
-
Object
- Object
- ReportsKit::FormBuilder
- Includes:
- ActionView::Helpers
- Defined in:
- lib/reports_kit/form_builder.rb
Constant Summary collapse
- DEFAULT_DATE_RANGE_VALUE =
['-2M', 'now']
Instance Attribute Summary collapse
-
#additional_params ⇒ Object
Returns the value of attribute additional_params.
-
#properties ⇒ Object
Returns the value of attribute properties.
Instance Method Summary collapse
- #check_box(filter_key, options = {}) ⇒ Object
- #date_range(filter_key, options = {}) ⇒ Object
-
#initialize(properties, additional_params: nil) ⇒ FormBuilder
constructor
A new instance of FormBuilder.
- #multi_autocomplete(filter_key, options = {}) ⇒ Object
- #string_filter(filter_key, options = {}) ⇒ Object
Constructor Details
#initialize(properties, additional_params: nil) ⇒ FormBuilder
Returns a new instance of FormBuilder.
9 10 11 12 |
# File 'lib/reports_kit/form_builder.rb', line 9 def initialize(properties, additional_params: nil) self.properties = properties.deep_symbolize_keys self.additional_params = additional_params end |
Instance Attribute Details
#additional_params ⇒ Object
Returns the value of attribute additional_params.
7 8 9 |
# File 'lib/reports_kit/form_builder.rb', line 7 def additional_params @additional_params end |
#properties ⇒ Object
Returns the value of attribute properties.
7 8 9 |
# File 'lib/reports_kit/form_builder.rb', line 7 def properties @properties end |
Instance Method Details
#check_box(filter_key, options = {}) ⇒ Object
14 15 16 17 18 |
# File 'lib/reports_kit/form_builder.rb', line 14 def check_box(filter_key, = {}) filter = validate_filter!(filter_key) checked = filter.normalized_properties[:criteria][:value] == 'true' check_box_tag(filter_key, '1', checked, ) end |
#date_range(filter_key, options = {}) ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'lib/reports_kit/form_builder.rb', line 20 def date_range(filter_key, = {}) filter = validate_filter!(filter_key) defaults = { class: 'form-control input-sm date_range_picker' } = defaults.deep_merge() value = filter.normalized_properties[:criteria][:value].presence value ||= default_date_range_value text_field_tag(filter_key, value, ) end |
#multi_autocomplete(filter_key, options = {}) ⇒ Object
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/reports_kit/form_builder.rb', line 29 def multi_autocomplete(filter_key, = {}) validate_filter!(filter_key) filter = series_filters.find { |f| f.key == filter_key.to_s } reports_kit_path = Rails.application.routes.url_helpers.reports_kit_path path = "#{reports_kit_path}reports_kit/resources/measures/#{filter.series.key}/filters/#{filter_key}/autocomplete?" path += additional_params.to_query if additional_params.present? scope = .delete(:scope) params = {} params[:scope] = scope if scope.present? defaults = { class: 'form-control input-sm select2', multiple: 'multiple', data: { placeholder: [:placeholder], path: path, params: params } } = defaults.deep_merge() select_tag(filter_key, nil, ) end |
#string_filter(filter_key, options = {}) ⇒ Object
52 53 54 55 56 57 |
# File 'lib/reports_kit/form_builder.rb', line 52 def string_filter(filter_key, = {}) filter = validate_filter!(filter_key) defaults = { class: 'form-control input-sm' } = defaults.deep_merge() text_field_tag(filter_key, filter.normalized_properties[:criteria][:value], ) end |