module BootstrapForm::Datetimepicker

Public Instance Methods

date_field(name, *args) click to toggle source
Calls superclass method
# File lib/bootstrap_form/datetimepicker.rb, line 3
def date_field(name, *args)
  options = args.extract_options!.symbolize_keys!
  prepare_options(name, options)
  options[:input_group][:data].merge!({'date-format' => 'L', 'date-extra-formats' => [BootstrapForm::DATE_FORMAT_JS]}.merge(options[:data] || {}))
  append_min_max(BootstrapForm::DATE_FORMAT_RUBY, options)
  args << options
  super
end
datetime_field(name, *args)
datetime_local_field(name, *args) click to toggle source

def datetime_field(name, *args)

options = args.extract_options!.symbolize_keys!
options[:datetimepicker] = true
options[:append] = calendar_addon
args << options
super

end

Calls superclass method
# File lib/bootstrap_form/datetimepicker.rb, line 20
def datetime_local_field(name, *args)
  options = args.extract_options!.symbolize_keys!
  prepare_options(name, options)
  options[:input_group][:data].merge!({'date-extra-formats' => [BootstrapForm::DATE_FORMAT_JS+"THH:mm"+(options[:include_seconds] ? ':ss' : '')]}.merge(options[:data] || {}))
  append_min_max(BootstrapForm::DATE_FORMAT_RUBY+"T%T", options)
  args << options
  super
end
Also aliased as: datetime_field

Private Instance Methods

append_min_max(format, options) click to toggle source
# File lib/bootstrap_form/datetimepicker.rb, line 46
def append_min_max(format, options)
  options[:input_group][:data].merge!('date-min-date' => options[:min].try(:strftime, format), 'date-max-date' => options[:max].try(:strftime, format))
end
calendar_addon() click to toggle source
# File lib/bootstrap_form/datetimepicker.rb, line 50
def calendar_addon
  content_tag('i', '', class: 'fa fa-calendar')
end
default_group_id(method_name) click to toggle source
# File lib/bootstrap_form/datetimepicker.rb, line 54
def default_group_id(method_name)
  "#{sanitized_object_name}_#{sanitized_method_name(method_name)}_group"
end
prepare_options(name, options) click to toggle source
# File lib/bootstrap_form/datetimepicker.rb, line 33
def prepare_options(name, options)
  input_group_id = default_group_id(name)
  options[:datetimepicker] = true
  options[:append] = calendar_addon
  options[:input_group_class] = 'date'
  options[:input_group] ||= {}
  options[:input_group][:id] = input_group_id
  options[:input_group][:data] = {'target-input' => 'nearest'}
  options[:append_tag] = {data: {toggle: 'datetimepicker', target: '#' + input_group_id}}
  options[:data] ||= {}
  options[:data][:target] = '#' + input_group_id
end
sanitized_method_name(method_name) click to toggle source
# File lib/bootstrap_form/datetimepicker.rb, line 62
def sanitized_method_name(method_name)
  method_name.to_s.sub(/\?$/, "")
end
sanitized_object_name() click to toggle source
# File lib/bootstrap_form/datetimepicker.rb, line 58
def sanitized_object_name
  @object_name.gsub(/\]\[|[^-a-zA-Z0-9:.]/, "_").sub(/_$/, "")
end