From 12bf2198e533e88244d5e74cc1871dc846ff16ed Mon Sep 17 00:00:00 2001 From: wvengen Date: Wed, 10 Dec 2014 22:03:17 +0100 Subject: [PATCH] fix simple_form deprecations --- app/inputs/date_picker_input.rb | 5 +++-- app/inputs/date_picker_time_input.rb | 7 ++++--- app/inputs/delta_input.rb | 21 +++++++++++---------- config/initializers/simple_form.rb | 2 +- 4 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/inputs/date_picker_input.rb b/app/inputs/date_picker_input.rb index f0e9e62e..84ebb87c 100644 --- a/app/inputs/date_picker_input.rb +++ b/app/inputs/date_picker_input.rb @@ -1,5 +1,6 @@ class DatePickerInput < SimpleForm::Inputs::StringInput - def input - @builder.text_field(attribute_name, input_html_options.merge({class: 'datepicker'})) + def input(wrapper_options) + options = merge_wrapper_options(input_html_options, wrapper_options) + @builder.text_field attribute_name, options.merge(class: 'datepicker') end end diff --git a/app/inputs/date_picker_time_input.rb b/app/inputs/date_picker_time_input.rb index 6ab83a74..f5548d23 100644 --- a/app/inputs/date_picker_time_input.rb +++ b/app/inputs/date_picker_time_input.rb @@ -5,7 +5,8 @@ # @see http://stackoverflow.com/a/20317763/2866660 # @see https://github.com/einzige/date_time_attribute class DatePickerTimeInput < SimpleForm::Inputs::StringInput - def input + def input(wrapper_options) + options = merge_wrapper_options(input_html_options, wrapper_options) # Date format must match datepicker's, see app/assets/application.js . # And for html5 inputs, match RFC3339, see http://dev.w3.org/html5/markup/datatypes.html#form.data.date . # In the future, use html5 date&time inputs. This needs modernizr or equiv. to avoid @@ -13,8 +14,8 @@ class DatePickerTimeInput < SimpleForm::Inputs::StringInput value = @builder.object.send attribute_name date_options = {as: :string, class: 'input-small datepicker'} time_options = {as: :string, class: 'input-mini'} - @builder.input_field("#{attribute_name}_date_value", input_html_options.merge(date_options)) + ' ' + - @builder.input_field("#{attribute_name}_time_value", input_html_options.merge(time_options)) + @builder.input_field("#{attribute_name}_date_value", options.merge(date_options)) + ' ' + + @builder.input_field("#{attribute_name}_time_value", options.merge(time_options)) # time_select requires a date_select #@builder.time_select("#{attribute_name}_time", {ignore_date: true}, input_html_options.merge(time_options)) end diff --git a/app/inputs/delta_input.rb b/app/inputs/delta_input.rb index 39e4e76f..40d20b5f 100644 --- a/app/inputs/delta_input.rb +++ b/app/inputs/delta_input.rb @@ -2,24 +2,25 @@ class DeltaInput < SimpleForm::Inputs::StringInput # for now, need to pass id or it won't work - def input - @input_html_options[:type] = 'text' - @input_html_options[:data] ||= {} - @input_html_options[:data][:delta] ||= 1 - @input_html_options[:autocomplete] ||= 'off' + def input(wrapper_options) + options = merge_wrapper_options(input_html_options, wrapper_options) + options[:type] = 'text' + options[:data] ||= {} + options[:data][:delta] ||= 1 + options[:autocomplete] ||= 'off' # TODO get generated id, don't know how yet - `add_default_name_and_id_for_value` might be an option template.content_tag :div, class: 'delta-input input-prepend input-append' do - delta_button('−', -1) + super + delta_button('+', 1) + delta_button('−', -1, options) + @builder.text_field(attribute_name, options) + delta_button('+', 1, options) end end - #template.button_tag('−', type: :submit, data: {decrement: @input_html_options[:id]}, tabindex: -1, class: 'btn') + + #template.button_tag('−', type: :submit, data: {decrement: options[:id]}, tabindex: -1, class: 'btn') + private - def delta_button(title, direction) - data = { (direction>0 ? 'increment' : 'decrement') => @input_html_options[:id] } - delta = direction * @input_html_options[:data][:delta] + def delta_button(title, direction, options) + data = { (direction>0 ? 'increment' : 'decrement') => options[:id] } + delta = direction * options[:data][:delta] template.button_tag(title, type: :button, name: 'delta', value: delta, data: data, tabindex: -1, class: 'btn') end end diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb index 6fde2de5..bb683629 100644 --- a/config/initializers/simple_form.rb +++ b/config/initializers/simple_form.rb @@ -98,7 +98,7 @@ SimpleForm.setup do |config| config.label_class = 'control-label' # You can define the class to use on all forms. Default is simple_form. - config.form_class = 'form-horizontal' + config.default_form_class = 'form-horizontal' # You can define which elements should obtain additional classes # config.generate_additional_classes_for = [:wrapper, :label, :input]