effective_form_inputs 0.4.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2f903f343a6b2612545534ce9a86fa00e953bb50
4
- data.tar.gz: 81bafa3159d6e521f38dca2b5f31f3970b638ce5
3
+ metadata.gz: 792d97f3b56394922bae94e8a202d9b92d0ac664
4
+ data.tar.gz: ec1a60a1d46296341d949c28efa63a1bc56f7c0d
5
5
  SHA512:
6
- metadata.gz: 2d09274264261dcb884eaccb193926de684985ebac1bbc20c34948dbfd7ee95bca244d36eb72b764672c106dba726cfd1cb4e7a15b2a6003cf5be230fbfeb353
7
- data.tar.gz: d29abe9f25363244106b176a81be578f86c4b11563276a84f28a165073b405c87110d2847abfc2d7e7bb365412fcea4d1fbee5a8e673abdfcc39afaeb5d25270
6
+ metadata.gz: c2f35c124ce855d1e71305d1e2a0bfd335e03b661b9d006e3d1904bcc5994e22fe6f0ee2b3ba3a487477e2d7ddee5acce99f47d8e78e725e4f1706ab2c52217b
7
+ data.tar.gz: 3cec8f1c61b3540f748b8ca422f90965009c72a9373355b164d36ef10c29a4aa2aea2514dc058aaead4804a0934fd09ddf78ba02aabd5136057b44f5c8abc340
data/README.md CHANGED
@@ -77,19 +77,26 @@ As a Rails Form Helper input:
77
77
  = f.effective_date_time_picker :updated_at
78
78
  ```
79
79
 
80
- and as a SimpleForm input:
80
+ As a SimpleForm input:
81
81
 
82
82
  ```ruby
83
83
  = simple_form_for @user do |f|
84
84
  = f.input :updated_at, :as => :effective_date_time_picker
85
85
  ```
86
86
 
87
+ As a SimpleForm input without the input group (calendar glyphicon)
88
+
89
+ ```ruby
90
+ = simple_form_for @user do |f|
91
+ = f.input :updated_at, :as => :effective_date_time_picker, :input_group => false
92
+ ```
93
+
87
94
  ### Options
88
95
 
89
96
  The default options used to initialize this form input are as follows:
90
97
 
91
98
  ```ruby
92
- :format => 'YYYY-MM-DD h:mm A', :sideBySide => true
99
+ :input_js => {:format => 'YYYY-MM-DD h:mm A', :sideBySide => true}
93
100
  ```
94
101
 
95
102
  For a full list of options, please refer to:
@@ -129,19 +136,26 @@ As a Rails Form Helper input:
129
136
  = f.effective_date_picker :started_on
130
137
  ```
131
138
 
132
- and as a SimpleForm input:
139
+ As a SimpleForm input:
133
140
 
134
141
  ```ruby
135
142
  = simple_form_for @user do |f|
136
143
  = f.input :started_on, :as => :effective_date_picker
137
144
  ```
138
145
 
146
+ As a SimpleForm input without the input group (calendar glyphicon)
147
+
148
+ ```ruby
149
+ = simple_form_for @user do |f|
150
+ = f.input :updated_at, :as => :effective_date_picker, :input_group => false
151
+ ```
152
+
139
153
  ### Options
140
154
 
141
155
  The default options used to initialize this form input are as follows:
142
156
 
143
157
  ```ruby
144
- :format => 'YYYY-MM-DD'
158
+ :input_js => {:format => 'YYYY-MM-DD'}
145
159
  ```
146
160
 
147
161
  For a full list of options, please refer to:
@@ -168,7 +182,7 @@ As a Rails Form Helper input:
168
182
  = f.effective_static_control :member_id
169
183
  ```
170
184
 
171
- and as a SimpleForm input:
185
+ As a SimpleForm input:
172
186
 
173
187
  ```ruby
174
188
  = simple_form_for @user do |f|
@@ -180,7 +194,6 @@ and as a SimpleForm input:
180
194
  There are no options for this form input
181
195
 
182
196
 
183
-
184
197
  ## Effective Select
185
198
 
186
199
  This custom form input is based on the following awesome project:
@@ -212,7 +225,7 @@ As a Rails Form Helper input:
212
225
  = form_for @user do |f|
213
226
  = f.effective_select :category, 10.times.map { |x| "Category #{x}"}
214
227
  = f.effective_select :categories, 10.times.map { |x| "Category #{x}"}, :multiple => true
215
- = f.effective_select :categories, 10.times.map { |x| "Category #{x}"}, :multiple => true, :tags => true
228
+ = f.effective_select :categories, 10.times.map { |x| "Category #{x}"}, :tags => true
216
229
  ```
217
230
 
218
231
  and as a SimpleForm input:
@@ -221,7 +234,7 @@ and as a SimpleForm input:
221
234
  = simple_form_for @user do |f|
222
235
  = f.input :category, :as => :effective_select, :collection => 10.times.map { |x| "Category #{x}"}
223
236
  = f.input :categories, :as => :effective_select, :collection => 10.times.map { |x| "Category #{x}"}, :multiple => true
224
- = f.input :categories, :as => :effective_select, :collection => 10.times.map { |x| "Category #{x}"}, :multiple => true, :tags => true
237
+ = f.input :categories, :as => :effective_select, :collection => 10.times.map { |x| "Category #{x}"}, :tags => true
225
238
  ```
226
239
 
227
240
  ### Modes
@@ -235,11 +248,15 @@ Passing `:multiple => true, :tags => true` will allow multiple selections to be
235
248
 
236
249
  ### Options
237
250
 
238
- The default options used to initialize this form input are as follows:
251
+ The default `:input_js => options` used to initialize this form input are as follows:
239
252
 
240
253
  ```ruby
241
- :allowClear => !(options[:multiple]) # Only display the Clear 'x' on a single selection box
254
+ :theme => 'bootstrap'
255
+ :minimumResultsForSearch => 6
242
256
  :tokenSeparators => [',', ' ']
257
+ :width => 'style'
258
+ :placeholder => 'Please choose'
259
+ :allowClear => !(options[:multiple]) # Only display the Clear 'x' on a single selection box
243
260
  ```
244
261
 
245
262
  ### Interesting Available Options
@@ -250,7 +267,7 @@ To limit the number of items that can be selected in a multiple select box:
250
267
  :maximumSelectionLength => 2
251
268
  ```
252
269
 
253
- To hide the search box:
270
+ To hide the search box entirely:
254
271
 
255
272
  ```ruby
256
273
  :minimumResultsForSearch => 'Infinity'
@@ -268,20 +285,20 @@ There is currently no support for using AJAX to load remote data. This feature
268
285
 
269
286
  ## Passing Options to JavaScript
270
287
 
271
- All appropriate options passed to any effective_form_input will be used to initialize the Javascript library
288
+ All `:input_js => options` passed to any effective_form_input will be used to initialize the Javascript library
272
289
 
273
290
  For example:
274
291
 
275
292
  ```ruby
276
293
  = form_for @user do |f|
277
- = f.effective_date_time_picker :updated_at, :format => 'dddd, MMMM Do YYYY', :showTodayButton => true
294
+ = f.effective_date_time_picker :updated_at, :input_js => {:format => 'dddd, MMMM Do YYYY', :showTodayButton => true}
278
295
  ```
279
296
 
280
297
  or
281
298
 
282
299
  ```ruby
283
300
  = simple_form_for @user do |f|
284
- = f.input :updated_at, :as => :effective_date_time_picker, :format => 'dddd, MMMM Do YYYY', :showTodayButton => true
301
+ = f.input :updated_at, :as => :effective_date_time_picker, :input_js => {:format => 'dddd, MMMM Do YYYY', :showTodayButton => true}
285
302
  ```
286
303
 
287
304
  will result in the following call to the Javascript library:
@@ -1,32 +1,22 @@
1
1
  module Effective
2
2
  module FormBuilderInputs
3
3
  def effective_date_time_picker(method, options = {})
4
- Inputs::EffectiveDateTimePicker::Input.new(@object, @object_name, @template, method, merged_input_js_options(options)).to_html
4
+ Inputs::EffectiveDateTimePicker::Input.new(@object, @object_name, @template, method, options, options).to_html
5
5
  end
6
6
 
7
7
  def effective_date_picker(method, options = {})
8
- Inputs::EffectiveDatePicker::Input.new(@object, @object_name, @template, method, merged_input_js_options(options)).to_html
8
+ Inputs::EffectiveDatePicker::Input.new(@object, @object_name, @template, method, options, options).to_html
9
9
  end
10
10
 
11
11
  def effective_static_control(method, options = {})
12
- Inputs::EffectiveStaticControl::Input.new(@object, @object_name, @template, method, merged_input_js_options(options)).to_html
12
+ Inputs::EffectiveStaticControl::Input.new(@object, @object_name, @template, method, options, options).to_html
13
13
  end
14
14
 
15
- def effective_select(method, options_tag = nil, options = {})
15
+ def effective_select(method, options_tag = nil, options = {}, html_options = {})
16
16
  options[:collection] = options_tag
17
- options[:label_method] = :to_s
18
- options[:value_method] = :to_s
19
- Inputs::EffectiveSelect::Input.new(@object, @object_name, @template, method, merged_input_js_options(options)).to_html
20
- end
21
-
22
- private
23
-
24
- def merged_input_js_options(options)
25
- (options || {}).tap do |opts|
26
- js_options = opts.reject { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) }
27
- opts.reject! { |k, _| js_options.include?(k) }
28
- opts['data-input-js-options'] = js_options if js_options.present?
29
- end
17
+ options[:label_method] = :to_s if options[:label_method].nil?
18
+ options[:value_method] = :to_s if options[:value_method].nil?
19
+ Inputs::EffectiveSelect::Input.new(@object, @object_name, @template, method, options, html_options).to_html
30
20
  end
31
21
  end
32
22
  end
@@ -1,12 +1,35 @@
1
1
  module Effective
2
2
  class FormInput
3
3
 
4
- def initialize(object, object_name, template, method, opts)
4
+ def initialize(object, object_name, template, method, opts, html_opts = {})
5
5
  @object = object
6
6
  @object_name = object_name
7
7
  @template = template
8
8
  @method = method
9
- @opts = opts
9
+
10
+ # Initialize 3 options Hashes: @opts, @html_opts, and @js_opts
11
+ @js_opts = opts.delete(:input_js).presence || {}
12
+ @html_opts = html_opts.presence || opts.delete(:input_html) || {}
13
+ @opts = opts.presence || {}
14
+
15
+ # Copy the following keys from options to html_options
16
+ # To deal with SimpleForm being simple
17
+ [:class, :readonly, :pattern, :disabled, :maxlength].each do |key|
18
+ if !html_opts.key?(key) && @opts.key?(key)
19
+ @html_opts[key] = @opts[:key] if @opts[:key]
20
+ end
21
+ end
22
+
23
+ # Reverse merge in the defaults, so the current values take precedence over defaults
24
+ @js_opts.reverse_merge!((default_input_js || {}))
25
+ @html_opts.reverse_merge!((default_input_html || {}).except(:class))
26
+ @opts.reverse_merge!((default_options || {}))
27
+
28
+ # Take special procedure to ensure that @html_opts[:class] is an Array, and the proper merged values
29
+ @html_opts[:class] = (arrayize_html_class_key(@html_opts[:class]) + arrayize_html_class_key(default_input_html)).compact.uniq
30
+
31
+ # Set the value to avoid options craziness
32
+ @value = (@opts.delete(:value) || @html_opts.delete(:value) || (@object.send(@method) if @object.respond_to?(@method)))
10
33
  end
11
34
 
12
35
  def field_name
@@ -14,43 +37,49 @@ module Effective
14
37
  end
15
38
 
16
39
  def value
17
- options[:value] || (@object.send(@method) if @object.respond_to?(@method))
40
+ @value
18
41
  end
19
42
 
20
- def default_input_js_options; {} end
21
- def default_input_classes; [] end
43
+ # Override these methods to change any options around
44
+ # tag_options reads html_options and js_options
45
+ def options; @opts end # All options passed to the FormInput, merged with defaults
46
+ def html_options; @html_opts end # All :input_html => options, merged with defaults. Could be everything (same as options) if coming from FormBuilder.
47
+ def js_options; @js_opts end # All :input_js => options, merged with defaults
22
48
 
23
- def options(&block)
24
- @form_field_options ||= (
25
- (@opts || {}).tap do |options|
26
- options['data-input-js-options'] = {} unless options['data-input-js-options'].kind_of?(Hash)
27
- merge_class_options!(options)
49
+ protected
28
50
 
29
- yield(options) if block_given?
51
+ # Hook methods for an inheritting class to apply defaults
52
+ def default_options; {} end # All options passed to FormInput
53
+ def default_input_html; {} end # To merge with any :input_html => options
54
+ def default_input_js; {} end # to merge with any :input_js => options
30
55
 
31
- merge_input_js_options!(options)
32
- options.delete('data-input-js-options') if options['data-input-js-options'] == '{}'
33
- end
34
- )
56
+ # This is what we want to send to a content_tag, text_area_tag, or whatever actual input we use
57
+ # It serializes any js_options into JSON format
58
+ # And turns html_options[:class] back into a string
59
+ def tag_options
60
+ html_options().tap do |html_options|
61
+ html_options['data-input-js-options'] = (JSON.generate(js_options) rescue {})
62
+ html_options[:class] = html_options[:class].join(' ')
63
+ end
35
64
  end
36
65
 
37
66
  private
38
67
 
39
- def merge_class_options!(options)
40
- (default_input_classes || []).each do |c|
41
- if options[:class].blank?
42
- options[:class] = c.to_s
43
- elsif options[:class].kind_of?(Array)
44
- options[:class] << c unless options[:class].include?(c)
45
- elsif options[:class].kind_of?(String)
46
- options[:class] << (' ' + c.to_s) unless options[:class].include?(c.to_s)
47
- end
68
+ # I'm passed something...I don't know what it is, but it needs to be an Array
69
+ def arrayize_html_class_key(something)
70
+ case something
71
+ when Hash
72
+ arrayize_html_class_key(something[:class])
73
+ when Array
74
+ something.compact.map(&:to_s)
75
+ when String
76
+ something.split(' ')
77
+ when Symbol
78
+ [something.to_s]
79
+ else
80
+ []
48
81
  end
49
82
  end
50
83
 
51
- def merge_input_js_options!(options)
52
- options['data-input-js-options'] = JSON.generate((default_input_js_options || {}).merge(options['data-input-js-options'] || {})) rescue {}
53
- end
54
-
55
84
  end
56
85
  end
@@ -3,35 +3,34 @@ module Inputs
3
3
  class Input < Effective::FormInput
4
4
  delegate :content_tag, :text_field_tag, :to => :@template
5
5
 
6
- def default_input_js_options
6
+ def default_input_js
7
7
  {:format => 'YYYY-MM-DD'}
8
8
  end
9
9
 
10
- def default_input_classes
11
- [:effective_date_picker, :date]
10
+ def default_input_html
11
+ {class: 'effective_date_picker date'}
12
12
  end
13
13
 
14
14
  def to_html
15
- if options.delete(:input_group) == false
16
- return text_field_tag(field_name, value, options)
15
+ if options[:input_group] == false
16
+ return text_field_tag(field_name, value, tag_options)
17
17
  end
18
18
 
19
19
  content_tag(:div, :class => 'input-group') do
20
20
  content_tag(:span, :class => 'input-group-addon') do
21
21
  content_tag(:i, '', :class => 'glyphicon glyphicon-calendar').html_safe
22
22
  end +
23
- text_field_tag(field_name, value, options)
23
+ text_field_tag(field_name, value, tag_options)
24
24
  end
25
25
  end
26
26
 
27
- def options
28
- super do |options|
29
- unless options['data-input-js-options'][:format].present?
30
- options[:pattern] = '\d{4}-\d{2}-\d{2}'
27
+ def html_options
28
+ super.tap do |html_options|
29
+ if js_options[:format] == default_input_js[:format] # Unless someone changed from the default
30
+ html_options[:pattern] = '\d{4}-\d{2}-\d{2}' # Match default pattern defined above
31
31
  end
32
32
  end
33
33
  end
34
-
35
34
  end
36
35
  end
37
36
  end
@@ -5,11 +5,7 @@ if defined?(SimpleForm)
5
5
 
6
6
  class EffectiveDatePickerInput < SimpleForm::Inputs::StringInput
7
7
  def input(wrapper_options = nil)
8
- options = merge_wrapper_options(input_html_options, wrapper_options) || {}
9
- options.merge!(input_options.select { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) })
10
- options['data-input-js-options'] = input_options.reject { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) }
11
-
12
- Inputs::EffectiveDatePicker::Input.new(object, object_name, template, attribute_name, options).to_html
8
+ Inputs::EffectiveDatePicker::Input.new(object, object_name, template, attribute_name, input_options, (merge_wrapper_options(input_html_options, wrapper_options) || {})).to_html
13
9
  end
14
10
  end
15
11
 
@@ -3,35 +3,34 @@ module Inputs
3
3
  class Input < Effective::FormInput
4
4
  delegate :content_tag, :text_field_tag, :to => :@template
5
5
 
6
- def default_input_js_options
6
+ def default_input_js
7
7
  {:format => 'YYYY-MM-DD h:mm A', :sideBySide => true}
8
8
  end
9
9
 
10
- def default_input_classes
11
- [:effective_date_time_picker, :datetime]
10
+ def default_input_html
11
+ {class: 'effective_date_time_picker datetime'}
12
12
  end
13
13
 
14
14
  def to_html
15
- if options.delete(:input_group) == false
16
- return text_field_tag(field_name, value, options)
15
+ if options[:input_group] == false
16
+ return text_field_tag(field_name, value, tag_options)
17
17
  end
18
18
 
19
19
  content_tag(:div, :class => 'input-group') do
20
20
  content_tag(:span, :class => 'input-group-addon') do
21
21
  content_tag(:i, '', :class => 'glyphicon glyphicon-calendar').html_safe
22
22
  end +
23
- text_field_tag(field_name, value, options)
23
+ text_field_tag(field_name, value, tag_options)
24
24
  end
25
25
  end
26
26
 
27
- def options
28
- super do |options|
29
- unless options['data-input-js-options'][:format].present?
30
- options[:pattern] = '\d{4}-\d{2}-\d{2} \d+:\d{2} [A-Z]{2}'
27
+ def html_options
28
+ super.tap do |html_options|
29
+ if js_options[:format] == default_input_js[:format] # Unless someone changed from the default
30
+ html_options[:pattern] = '\d{4}-\d{2}-\d{2} \d+:\d{2} [A-Z]{2}' # Match default pattern defined above
31
31
  end
32
32
  end
33
33
  end
34
-
35
34
  end
36
35
  end
37
36
  end
@@ -5,11 +5,7 @@ if defined?(SimpleForm)
5
5
 
6
6
  class EffectiveDateTimePickerInput < SimpleForm::Inputs::StringInput
7
7
  def input(wrapper_options = nil)
8
- options = merge_wrapper_options(input_html_options, wrapper_options) || {}
9
- options.merge!(input_options.select { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) })
10
- options['data-input-js-options'] = input_options.reject { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) }
11
-
12
- Inputs::EffectiveDateTimePicker::Input.new(object, object_name, template, attribute_name, options).to_html
8
+ Inputs::EffectiveDateTimePicker::Input.new(object, object_name, template, attribute_name, input_options, (merge_wrapper_options(input_html_options, wrapper_options) || {})).to_html
13
9
  end
14
10
  end
15
11
 
@@ -3,28 +3,43 @@ module Inputs
3
3
  class Input < Effective::FormInput
4
4
  delegate :collection_select, :to => :@template
5
5
 
6
- def default_input_js_options
7
- {:theme => 'bootstrap', :minimumResultsForSearch => 6, :tokenSeparators => [',', ' '], :width => 'style'}
6
+ def default_options
7
+ {:label_method => :to_s, :value_method => :to_s}
8
8
  end
9
9
 
10
- def default_input_classes
11
- [:effective_select]
10
+ def default_input_js
11
+ {theme: 'bootstrap', minimumResultsForSearch: 6, tokenSeparators: [',', ' '], width: 'style', placeholder: 'Please choose'}
12
+ end
13
+
14
+ def default_input_html
15
+ {class: 'effective_select', placeholder: 'Please choose'}
12
16
  end
13
17
 
14
18
  def to_html
15
- collection_select(@object_name, @method, options.delete(:collection), options.delete(:label_method), options.delete(:value_method), options.merge({:selected => value}), options)
19
+ collection_select(@object_name, @method, options[:collection], options[:label_method], options[:value_method], options, tag_options)
16
20
  end
17
21
 
18
22
  def options
19
- super do |options|
20
- options[:multiple] = true if options[:tags]
23
+ super().tap do |options|
24
+ options[:selected] = value if value
25
+
26
+ options[:multiple] = true if (options[:tags] == true)
27
+ options[:include_blank] = (options[:multiple] != true)
28
+ end
29
+ end
21
30
 
22
- # If multiple...
23
- options['data-input-js-options'][:allowClear] = (!options[:multiple])
24
- options[:include_blank] = false if options[:multiple]
31
+ def html_options
32
+ super().tap do |html_options|
33
+ html_options[:multiple] = options[:multiple]
34
+ end
35
+ end
36
+
37
+ def js_options
38
+ super().tap do |js_options|
39
+ js_options[:allowClear] = (options[:multiple] != true)
40
+ js_options[:tags] = (options[:tags] == true)
25
41
  end
26
42
  end
27
43
  end
28
44
  end
29
45
  end
30
-
@@ -7,14 +7,11 @@ if defined?(SimpleForm)
7
7
  def input(wrapper_options = nil)
8
8
  label_method, value_method = detect_collection_methods
9
9
 
10
- options = merge_wrapper_options(input_html_options, wrapper_options) || {}
11
- options.merge!(input_options.select { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) })
12
- options['data-input-js-options'] = input_options.reject { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) }
13
-
14
10
  options[:collection] = collection
15
11
  options[:label_method] = label_method
16
12
  options[:value_method] = value_method
17
- Inputs::EffectiveSelect::Input.new(object, object_name, template, attribute_name, options).to_html
13
+
14
+ Inputs::EffectiveSelect::Input.new(object, object_name, template, attribute_name, input_options, (merge_wrapper_options(input_html_options, wrapper_options) || {})).to_html
18
15
  end
19
16
  end
20
17
 
@@ -3,18 +3,17 @@ module Inputs
3
3
  class Input < Effective::FormInput
4
4
  delegate :content_tag, :to => :@template
5
5
 
6
- def default_input_classes
7
- ['form-control-static']
6
+ def default_input_html
7
+ {class: 'form-control-static'}
8
8
  end
9
9
 
10
10
  def to_html
11
- content_tag(:p, value, options)
11
+ content_tag(:p, value, tag_options)
12
12
  end
13
13
 
14
- def options
15
- super do |options|
16
- options[:class].delete('form-control') if options[:class].kind_of?(Array)
17
- options[:class].delete!('form-control') if options[:class].kind_of?(String)
14
+ def html_options
15
+ super.tap do |html_options|
16
+ html_options[:class].delete('form-control')
18
17
  end
19
18
  end
20
19
 
@@ -5,11 +5,7 @@ if defined?(SimpleForm)
5
5
 
6
6
  class EffectiveStaticControlInput < SimpleForm::Inputs::StringInput
7
7
  def input(wrapper_options = nil)
8
- options = merge_wrapper_options(input_html_options, wrapper_options) || {}
9
- options.merge!(input_options.select { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) })
10
- options['data-input-js-options'] = input_options.reject { |k, _| EffectiveFormInputs::REJECTED_INPUT_JS_OPTIONS.include?(k) }
11
-
12
- Inputs::EffectiveStaticControl::Input.new(object, object_name, template, attribute_name, options).to_html
8
+ Inputs::EffectiveStaticControl::Input.new(object, object_name, template, attribute_name, input_options, (merge_wrapper_options(input_html_options, wrapper_options) || {})).to_html
13
9
  end
14
10
  end
15
11
 
@@ -1,7 +1,24 @@
1
1
  / this gives me a mechanism to test the inputs easily on a site with effective style_guide installed
2
2
 
3
3
  = form_for Effective::StyleGuide.new(:category => 'Category 2'), :url => '/' do |f|
4
- = f.effective_date_time_picker :updated_at
5
- = f.effective_date_picker :updated_at
6
- = f.select :category, 10.times.map { |x| "Category #{x}"}, :include_blank => true
7
- = f.effective_select :category, 10.times.map { |x| "Category #{x}"}, :include_blank => false, :placeholder => 'Pleze chooze', :input_group => false
4
+ / = f.date_field :updated_at, :class => 'my-class'
5
+ / = f.effective_date_picker :updated_at, :class => 'my-class'
6
+ / %hr
7
+ / = f.datetime_field :updated_at
8
+ / = f.effective_date_time_picker :updated_at
9
+ / %hr
10
+ / = f.select :category, 10.times.map { |x| "Category #{x}"}, {:include_blank => true}, {:class => 'my-class'}
11
+ / = f.effective_select :category, 10.times.map { |x| "Category #{x}"}, {:include_blank => true}, {:class => 'my-class'}
12
+ / %hr
13
+ / = f.select :category, 10.times.map { |x| "Category #{x}"}, {:multiple => true}, {:class => 'my-class'}
14
+ / = f.effective_select :category, 10.times.map { |x| "Category #{x}"}, {:multiple => true}, {:class => 'my-class'}
15
+ / %hr
16
+ / = f.effective_static_control :static_text, :value => 'this is static control value', :class => 'my-class'
17
+
18
+
19
+ /= f.text_field :title, :class => 'my-text-field'
20
+ /= f.datetime_field :updated_at, :class => 'my-updated-at-class', :something => 'cool'
21
+ /= f.effective_date_time_picker :updated_at, :class => 'my-updated-at-class', :something => 'cool'
22
+
23
+ /= f.select :category, 10.times.map { |x| "Category #{x}"}, {:include_blank => true}, {:class => 'myclass'}
24
+ /= f.effective_select :category, 10.times.map { |x| "Category #{x}"}, {:include_blank => false}, {:class => 'myclass'}
@@ -2,5 +2,4 @@ require "effective_form_inputs/engine"
2
2
  require "effective_form_inputs/version"
3
3
 
4
4
  module EffectiveFormInputs
5
- REJECTED_INPUT_JS_OPTIONS = [:as, :hint, :error, :readonly, :disabled, :required, :label, :inline_label, :prompt, :min_max, :maxlength, :pattern, :input_html, :wrapper_html, :error_html, :id, :wrapper, :collection, :multiple, :include_blank, :label_method, :value_method, :input_group]
6
5
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveFormInputs
2
- VERSION = '0.4.2'.freeze
2
+ VERSION = '0.5.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_form_inputs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.2
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-03 00:00:00.000000000 Z
11
+ date: 2015-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails