Sha256: 57d56f5e88e5f14e6693234b19ee82fd7a72eca6b2844890d7993bc4fa8b4ba6

Contents?: true

Size: 1.54 KB

Versions: 9

Compression:

Stored size: 1.54 KB

Contents

# frozen_string_literal: true
module ActiveAdmin
  module Inputs
    module Filters
      class DateRangeInput < ::Formtastic::Inputs::StringInput
        include Base

        def to_html
          input_wrapping do
            [ label_html,
              builder.text_field(gt_input_name, input_html_options_for(gt_input_name, gt_input_placeholder)),
              builder.text_field(lt_input_name, input_html_options_for(lt_input_name, lt_input_placeholder)),
            ].join("\n").html_safe
          end
        end

        def gt_input_name
          "#{method}_gteq"
        end
        alias :input_name :gt_input_name

        def lt_input_name
          "#{method}_lteq"
        end

        def input_html_options
          { size: 12,
            class: "datepicker",
            maxlength: 10 }.merge(options[:input_html] || {})
        end

        def input_html_options_for(input_name, placeholder)
          current_value = begin
                            #cast value to date object before rendering input
                            @object.public_send(input_name).to_s.to_date
                          rescue
                            nil
                          end
          { placeholder: placeholder,
            value: current_value ? current_value.strftime("%Y-%m-%d") : "" }.merge(input_html_options)
        end

        def gt_input_placeholder
          I18n.t("active_admin.filters.predicates.from")
        end

        def lt_input_placeholder
          I18n.t("active_admin.filters.predicates.to")
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
activeadmin-3.3.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.2.5 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.2.4 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.2.3 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.2.2 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.2.1 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.2.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.1.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-3.0.0 lib/active_admin/inputs/filters/date_range_input.rb