module SciFormHelper class SciFormBuilder < ActionView::Helpers::FormBuilder include SciFormHelper # Returns Bootstrap date-time picker of the "datetime" type tailored for accessing a specified datetime attribute (identified by +name+) on an object # assigned to the template (identified by +object+). Additional options on the input tag can be passed as a # hash with +options+. The supported options are shown in the following examples. # # ==== Examples # Specify custom label (otherwise, a humanized version of +name+ is used) # # => datetime_picker(:post, :published, label: "Published date") # # Specify custom CSS style on the element # # => datetime_picker(:post, :published, style: "background-color: #000; margin-top: 20px;") # # Show a "clear" button on the bottom of the date picker. # # => datetime_picker(:post, :published, clear: true) # # Show a "today" button on the bottom of the date picker. # # => datetime_picker(:post, :published, today: true) def datetime_picker(name, options = {}) id = "#{@object_name}_#{name}" input_name = "#{@object_name}[#{name}]" value = options[:value] ? options[:value].strftime("#{I18n.backend.date_format} %H:%M") : '' js_locale = I18n.locale.to_s js_format = options[:time] ? datetime_picker_format_full : datetime_picker_format_date_only label = options[:label] || name.to_s.humanize style = options[:style] ? "style='#{options[:style]}'" : '' res = "
" \ "
" res << "
" if options[:clear] res << "" if options[:clear] res << "" \ "
" end res << '
' res.html_safe end # Returns smart