# File lib/repor/serializers/form_field_serializer.rb, line 27 def primary_grouper_field select_tag("#{prefix}[groupers][0]", options_for_select(dimension_options, report.grouper_names[0])) end
class Repor::Serializers::FormFieldSerializer
Public Instance Methods
aggregator_field()
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 22 def aggregator_field select_tag("#{prefix}[aggregator]", options_for_select(aggregator_options, report.aggregator_name)) end
aggregator_options()
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 14 def aggregator_options @agg_opts ||= report.aggregators.map { |name, agg| [human_aggregator_label(agg), name] } end
axis_fields()
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 37 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/repor/serializers/form_field_serializer.rb, line 104 def axis_fields_class 'repor-axis-fields' end
bin_dimension_field(dimension)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 70 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/repor/serializers/form_field_serializer.rb, line 83 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/repor/serializers/form_field_serializer.rb, line 114 def bin_max_placeholder(dimension); 'max'; end
bin_min_field(dimension)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 78 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/repor/serializers/form_field_serializer.rb, line 115 def bin_min_placeholder(dimension); 'min'; end
bin_step_field(dimension)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 88 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/repor/serializers/form_field_serializer.rb, line 116 def bin_step_placeholder(dimension) dimension.bin_width.inspect end
category_dimension_field(dimension)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 57 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/repor/serializers/form_field_serializer.rb, line 128 def css_class(s) s.to_s.demodulize.underscore.dasherize end
dimension_fields()
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 46 def dimension_fields report.dimensions.map { |name, dimension| field_for(dimension) }.compact end
dimension_fields_class(dimension)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 108 def dimension_fields_class(dimension) ['repor-dimension-fields', "repor-dimension-fields--#{css_class(dimension.name)}", "repor-dimension-fields--#{css_class(dimension.class.name)}"].join(' ') end
dimension_options()
click to toggle source
# File lib/repor/serializers/form_field_serializer.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/repor/serializers/form_field_serializer.rb, line 50 def field_for(dimension) case dimension when Repor::Dimensions::CategoryDimension then category_dimension_field(dimension) when Repor::Dimensions::BinDimension then bin_dimension_field(dimension) end end
fields_for(dimension, &block)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 93 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/repor/serializers/form_field_serializer.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/repor/serializers/form_field_serializer.rb, line 120 def prefix report.class.name.underscore end
prefix_for(dimension)
click to toggle source
# File lib/repor/serializers/form_field_serializer.rb, line 124 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/repor/serializers/form_field_serializer.rb, line 32 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/repor/serializers/form_field_serializer.rb, line 100 def wrapper_class "repor-fields repor-fields--#{css_class(report.class.name)}" end