Sha256: c2f79bc12c907b2c3e38edc7d8b99855c1275ef96d1b68efa68e9970cba85df1

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

module Effective
  module FormBuilderInputs
    class EffectiveTimePicker < Effective::FormBuilderInput
      delegate :content_tag, :text_field_tag, :to => :@template

      def default_input_js
        { format: 'LT', showClear: false, useCurrent: 'hour' }
      end

      def default_input_html
        {class: 'effective_time_picker time'}
      end

      def to_html
        if options[:input_group] == false
          return text_field_tag(field_name, value, tag_options)
        end

        content_tag(:div, class: 'input-group') do
          content_tag(:span, class: 'input-group-addon') do
            content_tag(:i, '', class: 'glyphicon glyphicon-time').html_safe
          end +
          text_field_tag(field_name, value, tag_options)
        end
      end

      def value
        val = super
        val.respond_to?(:strftime) ? val.strftime('%H:%M') : val
      end

      def html_options
        super.tap do |html_options|
          if js_options[:format] == default_input_js[:format] # Unless someone changed from the default
            html_options[:pattern] = '\d\d?:\d{2} \D{2}' # Match default pattern defined above
          end

          if options[:date_linked] == false
            html_options[:class] << 'not-date-linked'
          end

        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
effective_form_inputs-1.5.0 app/models/effective/form_builder_inputs/effective_time_picker.rb
effective_form_inputs-1.4.1 app/models/effective/form_builder_inputs/effective_time_picker.rb
effective_form_inputs-1.4.0 app/models/effective/form_builder_inputs/effective_time_picker.rb