Class: BlacklightRangeLimit::RangeFormComponent

Inherits:
ViewComponent::Base
  • Object
show all
Defined in:
app/components/blacklight_range_limit/range_form_component.rb

Instance Method Summary collapse

Constructor Details

#initialize(facet_field:, classes: BlacklightRangeLimit.classes) ⇒ RangeFormComponent

Returns a new instance of RangeFormComponent.



7
8
9
10
# File 'app/components/blacklight_range_limit/range_form_component.rb', line 7

def initialize(facet_field:, classes: BlacklightRangeLimit.classes)
  @facet_field = facet_field
  @classes = classes
end

Instance Method Details

#begin_labelObject



12
13
14
# File 'app/components/blacklight_range_limit/range_form_component.rb', line 12

def begin_label
  range_config[:input_label_range_begin] || t("blacklight.range_limit.range_begin", field_label: @facet_field.label)
end

#end_labelObject



16
17
18
# File 'app/components/blacklight_range_limit/range_form_component.rb', line 16

def end_label
  range_config[:input_label_range_end] || t("blacklight.range_limit.range_end", field_label: @facet_field.label)
end

#maxlengthObject



20
21
22
# File 'app/components/blacklight_range_limit/range_form_component.rb', line 20

def maxlength
  range_config[:maxlength]
end

#render_range_input(type, input_label = nil, maxlength_override = nil) ⇒ Object

type is ‘begin’ or ‘end’



25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/components/blacklight_range_limit/range_form_component.rb', line 25

def render_range_input(type, input_label = nil, maxlength_override = nil)
  type = type.to_s

  default = if @facet_field.selected_range.is_a?(Range)
              case type
              when 'begin' then @facet_field.selected_range.first
              when 'end' then @facet_field.selected_range.last
              end
            end

  html = number_field_tag("range[#{@facet_field.key}][#{type}]", default, maxlength: maxlength_override || maxlength, class: "form-control text-center range_#{type}")
  html += label_tag("range[#{@facet_field.key}][#{type}]", input_label, class: 'sr-only visually-hidden') if input_label.present?
  html
end