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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7241d32c38bf36e1e278670046938bbc082851715b83675de7b7939f1f0c7203
|
4
|
+
data.tar.gz: d5cea7573bf6a4403da3edd3b64a3e447e18f1d5b0946c6f336f98a1de6c70d6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
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.
|
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-
|
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
|