effective_bootstrap 0.0.24 → 0.0.25

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
  SHA1:
3
- metadata.gz: 8eb51867219dc8f1e8fd1be28821e3537ab697a0
4
- data.tar.gz: 9c2b9ffb8e4fb477c8717dd4e65eff4e36e58da7
3
+ metadata.gz: b0034d69f81cdb19da4484ae2f177d94ea598b14
4
+ data.tar.gz: c17d3ffb3930beb71d36119d3a55e8350dd39f51
5
5
  SHA512:
6
- metadata.gz: 641c9c543babf5ddd5eb34f8260572e9f27dae1db9df2a6ad19a4db854557ff0f7d630437fe479d553438789021fd765135c201c201c9111d82e1938748ee813
7
- data.tar.gz: 4be39fce70d005a6853d0f90a8bcc4382d371042ac4e270b6189b7edc5adbf1b9380824d92e0721342a0fe1c6bc00e10317f5167df6bebeda40b7d21d75582c6
6
+ metadata.gz: bdb5114081df013c88f85b1842c84edece3be14a231d0290672d99aa8e95654ce43d65d65ac5dccea9eae634eb19ed81301fb4159667834e8b2330fca2cfd559
7
+ data.tar.gz: 4649f5e1200d95c3dbff37c083d4ae7acd9329f47b5669444dba6149e7d571b3e901e7527e986154d543a588fcac67d77fa0264692d8bffb7e192543a91af278
data/README.md CHANGED
@@ -162,7 +162,7 @@ There are three sets of options hashes that you can pass into any form input:
162
162
 
163
163
  - `wrapper: { class: 'something' }` are applied to the wrapping div tag.
164
164
  - `input_html: { class: 'something' }` are applied to the input, select or textarea tag itself.
165
- - `input_js: { key: value}` are passed to any custom form input will be used to initialize the Javascript library. For example:
165
+ - `input_js: { key: value }` are passed to any custom form input will be used to initialize the Javascript library. For example:
166
166
 
167
167
  ```ruby
168
168
  = effective_form_with(model: @user) do |f|
@@ -315,12 +315,12 @@ will internally translate the collection into:
315
315
  [['User 1', 'User_1'], ['User 2', 'User_2'], ['Member 100', 'Member_100']]
316
316
  ```
317
317
 
318
- and instead of posting to the server with the parameter `:primary_contact`, it will instead post `{:primary_contact_id => 2, :primary_contact_type => 'User'}`.
318
+ and instead of posting to the server with the parameter `:primary_contact`, it will instead post `{primary_contact_id: 2, primary_contact_type: 'User'}`.
319
319
 
320
320
  Using both `polymorphic: true` and `grouped: true` is recommended. In this case the expected collection is as follows:
321
321
 
322
322
  ```ruby
323
- = f.input :primary_contact, {'Users' => User.all, 'Members' => 'Member.all'}, polymorphic: true, grouped: true
323
+ = f.input :primary_contact, {'Users': User.all, 'Members': Member.all}, polymorphic: true, grouped: true
324
324
  ```
325
325
 
326
326
  ### Options
@@ -343,13 +343,13 @@ The default options used to initialize this form input are as follows:
343
343
  To limit the number of items that can be selected in a multiple select box:
344
344
 
345
345
  ```ruby
346
- :maximumSelectionLength => 2
346
+ maximumSelectionLength: 2
347
347
  ```
348
348
 
349
349
  To hide the search box entirely:
350
350
 
351
351
  ```ruby
352
- :minimumResultsForSearch => 'Infinity'
352
+ minimumResultsForSearch: 'Infinity'
353
353
  ```
354
354
 
355
355
  For a full list of options, please refer to: https://select2.github.io/options.html
@@ -360,8 +360,8 @@ The following `input_js: options` are not part of the standard select2 API, and
360
360
  To add a css class to the select2 container or dropdown:
361
361
 
362
362
  ```ruby
363
- :containerClass => 'custom-container-class'
364
- :dropdownClass => 'custom-dropdown-class'
363
+ containerClass: 'custom-container-class'
364
+ dropdownClass: 'custom-dropdown-class'
365
365
  ```
366
366
 
367
367
  to display a glyphicon infront of each option value:
@@ -3,6 +3,19 @@ module EffectiveFormBuilderHelper
3
3
  options[:class] = [options[:class], 'needs-validation', ('form-inline' if options[:layout] == :inline)].compact.join(' ')
4
4
  options[:html] = (options[:html] || {}).merge(novalidate: true, onsubmit: 'return EffectiveForm.validate(this);')
5
5
 
6
+ # Compute the default ID
7
+ subject = Array(options[:scope] || options[:model]).last
8
+
9
+ html_id = if subject.kind_of?(Symbol)
10
+ subject
11
+ elsif subject.respond_to?(:new_record?) && subject.new_record?
12
+ "new_#{subject.class.name.underscore}"
13
+ elsif subject.respond_to?(:persisted?) && subject.persisted?
14
+ "edit_#{subject.class.name.underscore}_#{subject.to_param}"
15
+ else
16
+ raise 'Unexpected subject. Expected :scope or :model to be a symbol or ActiveRecord object'
17
+ end
18
+
6
19
  remote_index = options.except(:model).hash.abs
7
20
 
8
21
  if options.delete(:remote) == true
@@ -15,8 +28,13 @@ module EffectiveFormBuilderHelper
15
28
  options[:html]['data-remote'] = true
16
29
  options[:html]['data-remote-index'] = remote_index
17
30
  end
31
+
32
+ html_id = "#{html_id}_#{remote_index}"
18
33
  end
19
34
 
35
+ # Assign default ID
36
+ options[:id] ||= options[:html].delete(:id) || html_id
37
+
20
38
  without_error_proc do
21
39
  form_with(**options.merge(builder: Effective::FormBuilder), &block)
22
40
  end
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.0.24'.freeze
2
+ VERSION = '0.0.25'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_bootstrap
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.24
4
+ version: 0.0.25
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: 2018-06-21 00:00:00.000000000 Z
11
+ date: 2018-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails