ref: master
plugins/responsive/lib/ext/forms_helper.rb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
require_dependency 'forms_helper' module FormsHelper protected module ResponsiveMethods # add -inline class def labelled_radio_button human_name, name, value, checked = false, options = {} return super unless theme_responsive? options[:id] ||= 'radio-' + FormsHelper.next_id_number content_tag :div, class:'radio-inline' do content_tag :label, for: options[:id] do [ radio_button_tag(name, value, checked, options), ' ', human_name, ].safe_join end end end # add -inline class def labelled_check_box human_name, name, value = "1", checked = false, options = {} return super unless theme_responsive? options[:id] ||= 'checkbox-' + FormsHelper.next_id_number [ hidden_field_tag(name, '0'), content_tag(:div, class:'checkbox-inline') do content_tag :label, for: options[:id] do [ check_box_tag(name, value, checked, options), ' ', human_name, ].safe_join end end ].safe_join end def submit_button type, label, html_options = {} return super unless theme_responsive? html_options[:class] = [html_options[:class], 'submit'].compact.join(' ') option = html_options.delete(:option) || 'default' size = html_options.delete(:size) || 'default' the_class = "with-text btn btn-#{size} btn-#{option} icon-#{type}" the_class << ' ' << html_options[:class] if html_options.has_key?(:class) bt_cancel = html_options[:cancel] ? button(:cancel, _('Cancel'), html_options[:cancel]) : '' html_options.delete :cancel bt_submit = button_tag(label, html_options.merge(class: the_class)) [bt_submit + bt_cancel].safe_join end def responsive_add_field_class! options if options['class'] options['class'] = "#{options['class']} form-control" else options[:class] = "#{options[:class]} form-control" end end %w[ select_tag text_field_tag text_area_tag number_field_tag password_field_tag url_field_tag email_field_tag month_field_tag date_field_tag ].each do |method| define_method method do |name, value=nil, options={}, &block| responsive_add_field_class! options super(name, value, options, &block).html_safe end end %w[select_month select_year].each do |method| define_method method do |date, options={}, html_options={}| responsive_add_field_class! html_options super(date, options, html_options).html_safe end end end include ResponsiveChecks prepend ResponsiveMethods end # WORKAROUND require_dependency 'application_helper' ApplicationHelper.include FormsHelper |