Class: Effective::FormInputs::TimeField

Inherits:
DatetimeField show all
Defined in:
app/models/effective/form_inputs/time_field.rb

Constant Summary

Constants inherited from Effective::FormInput

Effective::FormInput::BLANK, Effective::FormInput::DEFAULT_FEEDBACK_OPTIONS, Effective::FormInput::DEFAULT_INPUT_GROUP_OPTIONS, Effective::FormInput::EMPTY_HASH, Effective::FormInput::EXCLUSIVE_CLASS_PREFIXES, Effective::FormInput::EXCLUSIVE_CLASS_SUFFIXES, Effective::FormInput::HORIZONTAL_LABEL_OPTIONS, Effective::FormInput::HORIZONTAL_WRAPPER_OPTIONS, Effective::FormInput::INLINE_LABEL_OPTIONS, Effective::FormInput::VERTICAL_WRAPPER_OPTIONS

Instance Attribute Summary

Attributes inherited from Effective::FormInput

#name, #options

Instance Method Summary collapse

Methods inherited from DatetimeField

#build_input

Methods inherited from Effective::FormInput

#feedback_options, #hint_options, #initialize, #label_options, #to_html, #wrapper_options

Constructor Details

This class inherits a constructor from Effective::FormInput

Instance Method Details

#datetime_to_sObject

ruby



23
24
25
# File 'app/models/effective/form_inputs/time_field.rb', line 23

def datetime_to_s # ruby
  (value&.strftime(am_pm? ? '%I:%M %p' : '%H:%M') rescue nil)
end

#formatObject

moment.js



31
32
33
# File 'app/models/effective/form_inputs/time_field.rb', line 31

def format # moment.js
  am_pm? ? 'LT' : 'HH:mm'
end

#input_group_optionsObject



19
20
21
# File 'app/models/effective/form_inputs/time_field.rb', line 19

def input_group_options
  { input_group: { class: 'input-group effective_date_time_picker_input_group' }, prepend: (:span, icon('clock'), class: 'input-group-text') }
end

#input_html_optionsObject



7
8
9
10
11
12
13
# File 'app/models/effective/form_inputs/time_field.rb', line 7

def input_html_options
  {
    class: ['form-control', 'effective_date_time_picker', 'effective_time', ('not-date-linked' if not_date_linked?)].compact.join(' '),
    pattern: pattern,
    id: tag_id
  }
end

#input_js_optionsObject



15
16
17
# File 'app/models/effective/form_inputs/time_field.rb', line 15

def input_js_options
  { format: format, showTodayButton: false, showClear: false, useCurrent: 'hour', disabledDates: disabled_dates.presence, locale: I18n.locale }.compact
end

#patternObject

html



27
28
29
# File 'app/models/effective/form_inputs/time_field.rb', line 27

def pattern # html
  am_pm? ? '\d{1,2}(:\d{2} [aApPmM]{2})?' : '\d{2}(:\d{2})?'
end