effective_bootstrap 0.6.17 → 0.6.18

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
  SHA256:
3
- metadata.gz: fc535e621de5c8452a1fe9eb6fb5114b2a7b996a6f4d3c4094522403d457ece9
4
- data.tar.gz: b32da0c613b18f72e8a1aa5ec75244e74570b81901ca791a0550eeb6111a065d
3
+ metadata.gz: 7241d32c38bf36e1e278670046938bbc082851715b83675de7b7939f1f0c7203
4
+ data.tar.gz: d5cea7573bf6a4403da3edd3b64a3e447e18f1d5b0946c6f336f98a1de6c70d6
5
5
  SHA512:
6
- metadata.gz: bf9e3af2cd5f6c6e45f63dc83e899b3dea25ac577c182c3060975baaf7d885b4c18649e530b96d91714051497301917389975cac5c7d3321fc2eee086d04b0d9
7
- data.tar.gz: 7728213c5431dc7ae8fc9c51f7271a9d971ea8bb0eadd179bc2ad05e622cc2e04d136f2e65e2f834a2b3a1adf2496abb0ebf720be36e15b3d2ca2b328fa7b666
6
+ metadata.gz: 3fb9c339089c1a32e78499a8096b9d1fb5f4c20d1a5e5ab10ee9164ee0652af626916c721555f28e6199ca308465b6472b915c35c02de1cff29a8d3b824907e9
7
+ data.tar.gz: 9362f1aac6111de2b4dc9976451123b9c909f10d0ceaf8eb68a38500aa768e694cda468164f9785aaa17fc74f0341bba7b2ac1f3910de91259d4383a21ed0a31
@@ -31,3 +31,23 @@
31
31
  if options.needDisable
32
32
  $element.find('input,textarea,select').prop('disabled', true)
33
33
 
34
+ (this.EffectiveBootstrap || {}).effective_show_if_any = ($element, options) ->
35
+
36
+ $affects = $element.closest('form').find("input[name='#{options.name}'],select[name='#{options.name}']")
37
+ values = JSON.parse(options.value)
38
+
39
+ $affects.on 'change', (event) ->
40
+ selected = $(event.target).val()
41
+ found = values.find((value) => (value == selected || "#{value}" == "#{selected}"))
42
+
43
+ if found
44
+ $element.fadeIn()
45
+ $element.find('input,textarea,select').removeAttr('disabled')
46
+ else
47
+ $element.hide()
48
+ $element.find('input,textarea,select').prop('disabled', true)
49
+
50
+ # Maybe disable it now
51
+ if options.needDisable
52
+ $element.find('input,textarea,select').prop('disabled', true)
53
+
@@ -186,6 +186,10 @@ module Effective
186
186
  Effective::FormLogics::ShowIf.new(*args, builder: self).to_html(&block)
187
187
  end
188
188
 
189
+ def show_if_any(*args, &block)
190
+ Effective::FormLogics::ShowIfAny.new(*args, builder: self).to_html(&block)
191
+ end
192
+
189
193
  end
190
194
  end
191
195
 
@@ -0,0 +1,42 @@
1
+ module Effective
2
+ module FormLogics
3
+ class ShowIfAny < Effective::FormLogic
4
+
5
+ def to_html(&block)
6
+ disabled_was = @builder.disabled
7
+
8
+ @builder.disabled = true unless show?
9
+
10
+ content = content_tag(:div, options.merge(input_js_options), &block)
11
+
12
+ @builder.disabled = disabled_was
13
+
14
+ content
15
+ end
16
+
17
+ def options
18
+ { style: ('display: none;' unless show?) }
19
+ end
20
+
21
+ def logic_options
22
+ { name: tag_name(args.first), value: args.second.to_json, needDisable: !show? }.merge(input_logic_options)
23
+ end
24
+
25
+ def input_logic_options
26
+ args.third.kind_of?(Hash) ? args.third : {}
27
+ end
28
+
29
+ def validate!(args)
30
+ raise "expected object to respond to #{args.first}" unless object.respond_to?(args.first)
31
+ end
32
+
33
+ def show?
34
+ Array(args.second).any? do |value|
35
+ selected = object.send(args.first)
36
+ selected == value || selected.to_s == value.to_s
37
+ end
38
+ end
39
+
40
+ end
41
+ end
42
+ end
@@ -1,3 +1,3 @@
1
1
  module EffectiveBootstrap
2
- VERSION = '0.6.17'.freeze
2
+ VERSION = '0.6.18'.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.6.17
4
+ version: 0.6.18
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: 2020-03-18 00:00:00.000000000 Z
11
+ date: 2020-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -611,6 +611,7 @@ files:
611
611
  - app/models/effective/form_logic.rb
612
612
  - app/models/effective/form_logics/hide_if.rb
613
613
  - app/models/effective/form_logics/show_if.rb
614
+ - app/models/effective/form_logics/show_if_any.rb
614
615
  - app/views/effective/style_guide/__fields.html.haml
615
616
  - app/views/effective/style_guide/__inline_fields.html.haml
616
617
  - app/views/effective/style_guide/_effective_form_with.html.haml