effective_bootstrap 0.6.17 → 0.6.18

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: 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