# File lib/active_reporter/serializer/form_field.rb, line 26 def primary_grouper_field select_tag("#{prefix}[groupers][0]", options_for_select(dimension_options, report.grouper_names[0])) end
class ActiveReporter::Serializer::FormField
Public Instance Methods
aggregator_field()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 22 def aggregator_field select_tag("#{prefix}[aggregator]", options_for_select(aggregator_options, report.aggregators.keys.first)) end
aggregator_options()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 14 def aggregator_options @agg_opts ||= report.all_aggregators.map { |name, agg| [human_aggregator_label(agg), name] } end
axis_fields()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 34 def axis_fields "<div class='#{axis_fields_class}'> Show me #{aggregator_field} by #{primary_grouper_field} and #{secondary_grouper_field} for </div>".html_safe end
axis_fields_class()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 97 def axis_fields_class 'active-reporter-axis-fields' end
bin_dimension_field(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 66 def bin_dimension_field(dimension) fields_for(dimension) do fields = "#{bin_min_field(dimension)} to #{bin_max_field(dimension)}" fields += " by #{bin_step_field(dimension)}" if dimension.grouping? fields end end
bin_max_field(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 78 def bin_max_field(dimension) text_field_tag("#{prefix_for(dimension)}[only][max]", dimension.filter_max, placeholder: bin_max_placeholder(dimension)) end
bin_max_placeholder(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 109 def bin_max_placeholder(dimension) 'max' end
bin_min_field(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 74 def bin_min_field(dimension) text_field_tag("#{prefix_for(dimension)}[only][min]", dimension.filter_min, placeholder: bin_min_placeholder(dimension)) end
bin_min_placeholder(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 113 def bin_min_placeholder(dimension) 'min' end
bin_step_field(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 82 def bin_step_field(dimension) text_field_tag("#{prefix_for(dimension)}[bin_width]", dimension.params[:bin_width], placeholder: bin_step_placeholder(dimension)) end
bin_step_placeholder(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 117 def bin_step_placeholder(dimension) dimension.bin_width.inspect end
category_dimension_field(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 54 def category_dimension_field(dimension) options = [[nil, nil]] dimension.all_values.each do |value| options << [human_dimension_value_label(dimension, value), value] end fields_for(dimension) do select_tag("#{prefix_for(dimension)}[only]", options_for_select(options, dimension.filter_values.first)) end end
css_class(s)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 129 def css_class(s) s.to_s.demodulize.underscore.dasherize end
dimension_fields()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 43 def dimension_fields report.dimensions.map { |name, dimension| field_for(dimension) }.compact end
dimension_fields_class(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 101 def dimension_fields_class(dimension) [ 'active-reporter-dimension-fields', "active-reporter-dimension-fields--#{css_class(dimension.name)}", "active-reporter-dimension-fields--#{css_class(dimension.class.name)}" ].join(' ') end
dimension_options()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 18 def dimension_options @dim_opts ||= report.dimensions.map { |name, dim| [human_dimension_label(dim), name] } end
field_for(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 47 def field_for(dimension) case dimension when ActiveReporter::Dimension::Category then category_dimension_field(dimension) when ActiveReporter::Dimension::Set then bin_dimension_field(dimension) end end
fields_for(dimension, &block)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 86 def fields_for(dimension, &block) "<fieldset class='#{dimension_fields_class(dimension)}'> <legend>#{human_dimension_label(dimension)}</legend> #{yield} </fieldset>".html_safe end
html_fields()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 7 def html_fields "<div class='#{wrapper_class}'> #{axis_fields} #{dimension_fields.join} </div>".html_safe end
prefix()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 121 def prefix report.class.name.underscore end
prefix_for(dimension)
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 125 def prefix_for(dimension) "#{prefix}[dimensions][#{dimension.name}]" end
primary_grouper_field()
click to toggle source
secondary_grouper_field()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 30 def secondary_grouper_field select_tag("#{prefix}[groupers][1]", options_for_select([[nil, nil]]+dimension_options, report.grouper_names[1])) end
wrapper_class()
click to toggle source
# File lib/active_reporter/serializer/form_field.rb, line 93 def wrapper_class "active-reporter-fields active-reporter-fields--#{css_class(report.class.name)}" end