rails_bootstrap_form 0.9.4 → 0.9.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c769ec63a2b3c1a8abaeaa8f8a8d11f7b473e71c69d7eb4fda3a4d200b9106e7
4
- data.tar.gz: a477abf8d26482d15d9eb6a1a4dae62be453823def408d9958961945d81cfe97
3
+ metadata.gz: f852149d96066acbbb48afc05ba8dd6d11f535401e9cdff2e6535829f9669303
4
+ data.tar.gz: d322c72387d0933048e789d849dfe79f9ee7c23f46b8eb2872d349e7698a1008
5
5
  SHA512:
6
- metadata.gz: 6394304b9d69627c1032d8392a6cb586964f9dce3e0d948aeaf0854303ae222f26f9a357e4df40f41c4f42e4d381140d27cf3cb65b2d1582c2a0f8400895be72
7
- data.tar.gz: fb8f1d8a37574de977551917b2e0b1577c2240d6443f48e7ac9d65fff3ca97939eaea6c97f54e88eb5d1322aed18c4336b4d6f440594b8089372d5185013ef6d
6
+ metadata.gz: 33a938a56a607b29bccd8c5ef712a68d7cd3caee5486b6002a8783023779222f211396d47ffa9e7aaf392820acd22e26d5d20a72c9e765a5aceec07355a34525
7
+ data.tar.gz: 1418938ffaadcf8a58439324e844f3acff4f437f07ff58e14df45eafb539c35211a28f567b1e3d6409b1e14c7667d62bbd650c7d8f90ea6fa5ba99fc3a37ea66
data/CHANGELOG.md CHANGED
@@ -4,6 +4,18 @@ You can find recent releases with docs in GitHub:
4
4
 
5
5
  https://github.com/shivam091/rails_bootstrap_form/releases
6
6
 
7
+ ## [0.9.4](https://github.com/shivam091/rails_bootstrap_form/compare/v0.9.4...v0.9.5) - 2023-06-21
8
+
9
+ ### What's changed
10
+
11
+ - Changed default value of `field_class` option to `nil`.
12
+
13
+ ### What's fixed
14
+
15
+ - Fixed static field options to accept bootstrap options ([#45](https://github.com/shivam091/rails_bootstrap_form/issues/45))
16
+ - Changes to allow overriding of field_class at form and field level ([#44](https://github.com/shivam091/rails_bootstrap_form/issues/44))
17
+ - Fixed bug causing class attribute in select list to not get added to field ([#46](https://github.com/shivam091/rails_bootstrap_form/issues/46))
18
+
7
19
  ## [0.9.4](https://github.com/shivam091/rails_bootstrap_form/compare/v0.9.3...v0.9.4) - 2023-06-17
8
20
 
9
21
  ### What's new
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_bootstrap_form (0.9.4)
4
+ rails_bootstrap_form (0.9.5)
5
5
  actionpack (~> 7.0)
6
6
  activemodel (~> 7.0)
7
7
 
data/README.md CHANGED
@@ -28,7 +28,7 @@ for setting up `application.scss` and `application.js`.
28
28
  Add the `rails_bootstrap_form` gem to your `Gemfile`:
29
29
 
30
30
  ```ruby
31
- gem "rails_bootstrap_form", "~> 0.9.4"
31
+ gem "rails_bootstrap_form", "~> 0.9.5"
32
32
  ```
33
33
 
34
34
  Then:
@@ -154,13 +154,13 @@ This generates the following HTML:
154
154
 
155
155
  ## Bootstrap Configuration Options
156
156
 
157
- Here's a list of all possible options you can pass via `bootstrap` option that can be attached to the `bootstrap_form_for` or `bootstrap_form_with` or any field helpers inside of it:
157
+ Here's a list of all possible options you can pass via `bootstrap` option that can be attached to the `bootstrap_form_for`, `bootstrap_form_with`, `fields_for`, or any field helpers inside of it:
158
158
 
159
159
  | Option | Description | Default value |
160
160
  | ------ | ------------- | ----------- |
161
161
  | `disabled` | An option to disable **rails_bootstrap_form** helpers. Default rails form builder element is rendered when set to `true` | `false` |
162
162
  | `layout` | Controls layout of form and field helpers. It can be `vertical` `horizontal`, or `inline`. | `vertical` |
163
- | `field_class` | A CSS class that will be applied to all form fields. | `form-control` |
163
+ | `field_class` | A CSS class that will be applied to all form fields. | `nil` |
164
164
  | `help_text` | Describes help text for the HTML field. Help text is automatically read from translation file. If you want to customize it, you can pass a string. You can also set it `false` if you do not want help text displayed. | `nil` |
165
165
  | `label_text` | An option to customize automatically generated label text. | `nil` |
166
166
  | `skip_label` | An option to control whether the label is to be displayed or not. | `false` |
@@ -322,7 +322,7 @@ time_field time_select time_zone_select
322
322
  url_field week_field weekday_select
323
323
  ```
324
324
 
325
- ## Supported form layouts
325
+ ## Supported Form Layouts
326
326
 
327
327
  ### Vertical Layout
328
328
 
@@ -1030,6 +1030,8 @@ This generates the following HTML:
1030
1030
  </form>
1031
1031
  ```
1032
1032
 
1033
+ Options specified at the field level take precedence over those specified at the fields_for level, which take precedence over those specified at the form level.
1034
+
1033
1035
  ### file_field
1034
1036
 
1035
1037
  Our `file_field` helper accepts the same arguments as the [default Rails helper](https://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-file_field).
@@ -25,7 +25,7 @@ module RailsBootstrapForm
25
25
  attr_accessor :layout
26
26
 
27
27
  # A CSS class that will be applied to all form fields.
28
- # The default value is `form-control`.
28
+ # The default value is `nil`.
29
29
  attr_accessor :field_class
30
30
 
31
31
  # An additional CSS class that will be added along with the existing
@@ -169,12 +169,20 @@ module RailsBootstrapForm
169
169
  define_method("#{method}?") { self.send(method) }
170
170
  end
171
171
 
172
+ def disable_floating_labels!
173
+ self.floating = false
174
+ end
175
+
176
+ def set_field_class!(css_class)
177
+ self.field_class ||= css_class
178
+ end
179
+
172
180
  def set_defaults
173
181
  @disabled = false
174
182
 
175
183
  @layout = "vertical"
176
184
 
177
- @field_class = "form-control"
185
+ @field_class = nil
178
186
  @additional_field_class = nil
179
187
 
180
188
  @help_text = nil
@@ -72,7 +72,7 @@ module RailsBootstrapForm
72
72
  def field_css_options(attribute, bootstrap, options, html_options)
73
73
  css_options = (html_options || options)
74
74
 
75
- field_classes = Array(bootstrap.field_class) << [bootstrap.additional_field_class || options[:class]]
75
+ field_classes = Array(bootstrap.field_class) << [bootstrap.additional_field_class || css_options[:class]]
76
76
  field_classes << "is-invalid" if is_invalid?(attribute)
77
77
  if is_size_valid?(bootstrap)
78
78
  field_classes << "#{bootstrap.field_class}-#{bootstrap.size}"
@@ -17,7 +17,7 @@ module RailsBootstrapForm
17
17
  input_options = {
18
18
  bootstrap: {
19
19
  label_text: text_method.respond_to?(:call) ? text_method.call(object) : object.send(text_method),
20
- inline: (bootstrap.inline? || bootstrap.layout_inline?)
20
+ inline: (bootstrap.inline? || bootstrap.layout_inline?)
21
21
  },
22
22
  required: false,
23
23
  id: sanitized_tag_name(attribute, value)
@@ -42,6 +42,8 @@ module RailsBootstrapForm
42
42
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
43
43
  return super(attribute, options) if bootstrap.disabled?
44
44
 
45
+ bootstrap.set_field_class!("form-control")
46
+
45
47
  field_wrapper_builder(attribute, bootstrap, options) do
46
48
  super(attribute, options)
47
49
  end
@@ -50,11 +52,12 @@ module RailsBootstrapForm
50
52
 
51
53
  def bootstrap_select_group(tag_name)
52
54
  define_method(tag_name) do |attribute, options = {}, html_options = {}|
53
- options = {bootstrap: {field_class: "form-select", floating: false}}.deep_merge!(options)
54
-
55
55
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
56
56
  return super(attribute, options, html_options) if bootstrap.disabled?
57
57
 
58
+ bootstrap.set_field_class!("form-select")
59
+ bootstrap.disable_floating_labels!
60
+
58
61
  field_wrapper_builder(attribute, bootstrap, options, html_options) do
59
62
  tag.fieldset(class: control_specific_class(tag_name)) do
60
63
  super(attribute, options, html_options)
@@ -10,9 +10,10 @@ module RailsBootstrapForm
10
10
  included do
11
11
  def collection_check_boxes(attribute, collection, value_method, text_method, options = {}, html_options = {})
12
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
13
- bootstrap.floating = false
14
13
  return super if bootstrap.disabled?
15
14
 
15
+ bootstrap.disable_floating_labels!
16
+
16
17
  inputs = inputs_collection(attribute, collection, value_method, text_method, bootstrap, options) do |attribute, value, options|
17
18
  bootstrap_opts = bootstrap_form_options.scoped(options.delete(:bootstrap))
18
19
 
@@ -10,9 +10,10 @@ module RailsBootstrapForm
10
10
  included do
11
11
  def collection_radio_buttons(attribute, collection, value_method, text_method, options = {}, html_options = {})
12
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
13
- bootstrap.floating = false
14
13
  return super if bootstrap.disabled?
15
14
 
15
+ bootstrap.disable_floating_labels!
16
+
16
17
  inputs = inputs_collection(attribute, collection, value_method, text_method, bootstrap, options) do |attribute, value, options|
17
18
  bootstrap_opts = bootstrap_form_options.scoped(options.delete(:bootstrap))
18
19
 
@@ -9,11 +9,11 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def collection_select(attribute, collection, value_method, text_method, options = {}, html_options = {})
12
- options = {bootstrap: {field_class: "form-select"}}.deep_merge!(options)
13
-
14
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
13
  return super if bootstrap.disabled?
16
14
 
15
+ bootstrap.set_field_class!("form-select")
16
+
17
17
  field_wrapper_builder(attribute, bootstrap, options, html_options) do
18
18
  super(attribute, collection, value_method, text_method, options, html_options)
19
19
  end
@@ -9,16 +9,12 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def color_field(attribute, options = {})
12
- options = {
13
- bootstrap: {
14
- field_class: "form-control form-control-color",
15
- floating: false
16
- }
17
- }.deep_merge!(options)
18
-
19
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
20
13
  return super if bootstrap.disabled?
21
14
 
15
+ bootstrap.set_field_class!("form-control form-control-color")
16
+ bootstrap.disable_floating_labels!
17
+
22
18
  field_wrapper_builder(attribute, bootstrap, options) do
23
19
  super(attribute, options)
24
20
  end
@@ -9,11 +9,11 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def grouped_collection_select(attribute, collection, group_method, group_label_method, option_key_method, option_value_method, options = {}, html_options = {})
12
- options = {bootstrap: {field_class: "form-select"}}.deep_merge!(options)
13
-
14
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
13
  return super if bootstrap.disabled?
16
14
 
15
+ bootstrap.set_field_class!("form-select")
16
+
17
17
  field_wrapper_builder(attribute, bootstrap, options, html_options) do
18
18
  super(attribute, collection, group_method, group_label_method, option_key_method, option_value_method, options, html_options)
19
19
  end
@@ -9,11 +9,12 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def range_field(attribute, options = {})
12
- options = {bootstrap: {field_class: "form-range", floating: false}}.deep_merge!(options)
13
-
14
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
13
  return super if bootstrap.disabled?
16
14
 
15
+ bootstrap.set_field_class!("form-range")
16
+ bootstrap.disable_floating_labels!
17
+
17
18
  field_wrapper_builder(attribute, bootstrap, options) do
18
19
  super(attribute, options)
19
20
  end
@@ -9,7 +9,7 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def rich_text_area(attribute, options = {})
12
- options[:class] = ["trix-content", options[:class]].compact.join(" ")
12
+ add_css_class!(options, "trix-content")
13
13
 
14
14
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
15
  return super if bootstrap.disabled?
@@ -9,11 +9,11 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def select(attribute, choices = nil, options = {}, html_options = {}, &block)
12
- options = {bootstrap: {field_class: "form-select"}}.deep_merge!(options)
13
-
14
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
13
  return super if bootstrap.disabled?
16
14
 
15
+ bootstrap.set_field_class!("form-select")
16
+
17
17
  field_wrapper_builder(attribute, bootstrap, options, html_options) do
18
18
  super(attribute, choices, options, html_options, &block)
19
19
  end
@@ -8,21 +8,19 @@ module RailsBootstrapForm
8
8
  extend ActiveSupport::Concern
9
9
 
10
10
  included do
11
- def static_field(*args)
12
- options = args.extract_options!
13
- attribute = args.first
14
-
15
- static_options = options.merge(
16
- readonly: true,
17
- disabled: true,
18
- bootstrap: {
11
+ def static_field(attribute, options = {})
12
+ options.tap do |option|
13
+ option[:readonly] = true
14
+ option[:disabled] = true
15
+ option[:bootstrap] = {
16
+ floating: false,
19
17
  field_class: bootstrap_form_options.static_field_class
20
- }.reverse_merge!(options.delete(:bootstrap))
21
- )
18
+ }.reverse_merge!(options.fetch(:bootstrap, {}))
19
+ end
22
20
 
23
- static_options[:value] = object.send(attribute) unless options.key?(:value)
21
+ options[:value] = object.send(attribute) unless options.key?(:value)
24
22
 
25
- text_field(attribute, static_options)
23
+ text_field(attribute, options)
26
24
  end
27
25
  end
28
26
  end
@@ -9,11 +9,11 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def time_zone_select(attribute, priority_zones = nil, options = {}, html_options = {})
12
- options = {bootstrap: {field_class: "form-select"}}.deep_merge!(options)
13
-
14
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
13
  return super if bootstrap.disabled?
16
14
 
15
+ bootstrap.set_field_class!("form-select")
16
+
17
17
  field_wrapper_builder(attribute, bootstrap, options, html_options) do
18
18
  super(attribute, priority_zones, options, html_options)
19
19
  end
@@ -9,11 +9,11 @@ module RailsBootstrapForm
9
9
 
10
10
  included do
11
11
  def weekday_select(attribute, options = {}, html_options = {}, &block)
12
- options = {bootstrap: {field_class: "form-select"}}.deep_merge!(options)
13
-
14
12
  bootstrap = bootstrap_form_options.scoped(options.delete(:bootstrap))
15
13
  return super if bootstrap.disabled?
16
14
 
15
+ bootstrap.set_field_class!("form-select")
16
+
17
17
  field_wrapper_builder(attribute, bootstrap, options, html_options) do
18
18
  super(attribute, options, html_options, &block)
19
19
  end
@@ -3,6 +3,6 @@
3
3
  # -*- warn_indent: true -*-
4
4
 
5
5
  module RailsBootstrapForm
6
- VERSION = "0.9.4".freeze
6
+ VERSION = "0.9.5".freeze
7
7
  REQUIRED_RAILS_VERSION = "~> 7.0".freeze
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_bootstrap_form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.4
4
+ version: 0.9.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Harshal LADHE (shivam091)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-17 00:00:00.000000000 Z
11
+ date: 2023-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: generator_spec