Sha256: 9181d3a264af777b8283302df84769923b025d45776e1d1036ca34c62599b3db

Contents?: true

Size: 1.4 KB

Versions: 13

Compression:

Stored size: 1.4 KB

Contents

module Formtastic
  module Inputs
    # Outputs a label and a text field, along with a datalist tag
    # datalist tag provides a list of options which drives a simple autocomplete
    # on the text field. This is a HTML5 feature, more info can be found at
    # {https://developer.mozilla.org/en/docs/Web/HTML/Element/datalist <datalist> at MDN}
    # This input accepts a :collection option which takes data in all the usual formats accepted by
    # {http://apidock.com/rails/ActionView/Helpers/FormOptionsHelper/options_for_select options_for_select}
    #
    # @example Input is used as follows
    #   f.input :fav_book, :as => :datalist, :collection => Book.pluck(:name)
    #
    class DatalistInput
      include Base
      include Base::Stringish
      include Base::Collections

      def to_html
        @name = input_html_options[:id].gsub(/_id$/, "")
        input_wrapping do
          label_html <<
          builder.text_field(method, input_html_options) << # standard input
          data_list_html # append new datalist element
        end
      end

      def input_html_options
        super.merge(:list => html_id_of_datalist)
      end

      def html_id_of_datalist
        "#{@name}_datalist"
      end

      def data_list_html
        html = builder.template.options_for_select(collection)
        builder.template.content_tag(:datalist,html, { :id => html_id_of_datalist }, false)
      end
    end
  end
end

Version data entries

13 entries across 13 versions & 3 rubygems

Version Path
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/formtastic-4.0.0/lib/formtastic/inputs/datalist_input.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/formtastic-4.0.0/lib/formtastic/inputs/datalist_input.rb
formtastic-4.0.0 lib/formtastic/inputs/datalist_input.rb
formtastic-4.0.0.rc1 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.5 lib/formtastic/inputs/datalist_input.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/formtastic-3.1.4/lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.4 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.3 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.2 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.1 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.0 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.0.rc2 lib/formtastic/inputs/datalist_input.rb
formtastic-3.1.0.rc1 lib/formtastic/inputs/datalist_input.rb