Sha256: 92159a325d7dcda5432961c28a3dfdc343a2d6d68af1e1b85f3651564f294989

Contents?: true

Size: 1.48 KB

Versions: 32

Compression:

Stored size: 1.48 KB

Contents

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(gt_input_name, gt_input_placeholder)),
              builder.text_field(lt_input_name, input_html_options(lt_input_name, lt_input_placeholder)),
            ].join("\n").html_safe
          end
        end

        def gt_input_name
          column && column.type == :date ? "#{method}_gteq" : "#{method}_gteq_datetime"
        end
        alias :input_name :gt_input_name

        def lt_input_name
          column && column.type == :date ? "#{method}_lteq" : "#{method}_lteq_datetime"
        end

        def input_html_options(input_name = gt_input_name, placeholder = gt_input_placeholder)
          current_value = begin
            #cast value to date object before rendering input
            @object.public_send(input_name).to_s.to_date
          rescue
            nil
          end
          { size: 12,
            class: "datepicker",
            maxlength: 10,
            placeholder: placeholder,
            value: current_value ? current_value.strftime("%Y-%m-%d") : "" }
        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

32 entries across 32 versions & 4 rubygems

Version Path
activeadmin-rails-1.7.2 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rails-1.7.1 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rails-1.7.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rb-1.6.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rb-1.5.2 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rb-1.5.1 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.4.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.3.1 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.3.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.2.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.1.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.0.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rb-1.5.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.0.0.rc2 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin_addons-1.7.1 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-2.0.0.rc1 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-rb-1.4.0 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin_addons-1.7.0 vendor/bundle/ruby/2.3.0/bundler/gems/activeadmin-f71b375325eb/lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-1.4.3 lib/active_admin/inputs/filters/date_range_input.rb
activeadmin-1.4.2 lib/active_admin/inputs/filters/date_range_input.rb