effective_bootstrap 1.16.1 → 1.16.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/effective_bootstrap/logic.js.coffee +11 -10
- data/app/assets/stylesheets/effective_datetime/overrides.scss +4 -0
- data/app/assets/stylesheets/effective_has_many/input.scss +5 -0
- data/app/models/effective/form_inputs/date_field.rb +4 -1
- data/app/models/effective/form_inputs/file_field.rb +1 -1
- data/app/models/effective/form_inputs/has_many.rb +15 -11
- data/lib/effective_bootstrap/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7a43d4059d694f254fb05f0cb43f12dc5f3b5fbeb5df8dc7aa7aa21fc8a3bad9
|
4
|
+
data.tar.gz: 8967aad36784c29bd334837b2bf9d4683258e7afafd61d509821dd31a860688c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8dc33e68ff3d7383d22d60971c577490c4fbc9d93f606ec66b7ac45a38cb1fca4ef2ef514525b0b1a0fa974b65d36599791ae14d2f134bd8a5ad0b1ac3ca0670
|
7
|
+
data.tar.gz: 383b522a6c0839f578f545f7535aac54682a9640f1c88c3d61d48879a445683047f0a95d373b0b3b74777bed218be622fa5f1a387979d4841f06263fe5630928
|
@@ -1,3 +1,5 @@
|
|
1
|
+
elementSelector = 'input,textarea,select,button,div.form-has-many'
|
2
|
+
|
1
3
|
(this.EffectiveBootstrap || {}).effective_hide_if = ($element, options) ->
|
2
4
|
$affects = $element.closest('form,div.effective-datatables-filters').find("input[name='#{options.name}'],select[name='#{options.name}']")
|
3
5
|
|
@@ -11,16 +13,15 @@
|
|
11
13
|
|
12
14
|
if matches
|
13
15
|
$element.hide()
|
14
|
-
$element.find(
|
16
|
+
$element.find(elementSelector).prop('disabled', true)
|
15
17
|
else
|
16
18
|
$element.fadeIn()
|
17
|
-
$element.find(
|
19
|
+
$element.find(elementSelector).removeAttr('disabled')
|
18
20
|
$element.find('textarea.effective_article_editor').each (i, editor) -> ArticleEditor('#' + $(editor).attr('id')).enable()
|
19
21
|
|
20
22
|
# Maybe disable it now
|
21
23
|
if options.needDisable
|
22
|
-
$element.find(
|
23
|
-
|
24
|
+
$element.find(elementSelector).prop('disabled', true)
|
24
25
|
|
25
26
|
(this.EffectiveBootstrap || {}).effective_show_if = ($element, options) ->
|
26
27
|
$affects = $element.closest('form,div.effective-datatables-filters').find("input[name='#{options.name}'],select[name='#{options.name}'],input[name='#{options.name}[]']")
|
@@ -39,15 +40,15 @@
|
|
39
40
|
|
40
41
|
if matches
|
41
42
|
$element.fadeIn()
|
42
|
-
$element.find(
|
43
|
+
$element.find(elementSelector).removeAttr('disabled')
|
43
44
|
$element.find('textarea.effective_article_editor').each (i, editor) -> ArticleEditor('#' + $(editor).attr('id')).enable()
|
44
45
|
else
|
45
46
|
$element.hide()
|
46
|
-
$element.find(
|
47
|
+
$element.find(elementSelector).prop('disabled', true)
|
47
48
|
|
48
49
|
# Maybe disable it now
|
49
50
|
if options.needDisable
|
50
|
-
$element.find(
|
51
|
+
$element.find(elementSelector).prop('disabled', true)
|
51
52
|
|
52
53
|
(this.EffectiveBootstrap || {}).effective_show_if_any = ($element, options) ->
|
53
54
|
$affects = $element.closest('form,div.effective-datatables-filters').find("input[name='#{options.name}'],select[name='#{options.name}']")
|
@@ -59,13 +60,13 @@
|
|
59
60
|
|
60
61
|
if found
|
61
62
|
$element.fadeIn()
|
62
|
-
$element.find(
|
63
|
+
$element.find(elementSelector).removeAttr('disabled')
|
63
64
|
$element.find('textarea.effective_article_editor').each (i, editor) -> ArticleEditor('#' + $(editor).attr('id')).enable()
|
64
65
|
|
65
66
|
else
|
66
67
|
$element.hide()
|
67
|
-
$element.find(
|
68
|
+
$element.find(elementSelector).prop('disabled', true)
|
68
69
|
|
69
70
|
# Maybe disable it now
|
70
71
|
if options.needDisable
|
71
|
-
$element.find(
|
72
|
+
$element.find(elementSelector).prop('disabled', true)
|
@@ -17,7 +17,10 @@ module Effective
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def input_group_options
|
20
|
-
{
|
20
|
+
{
|
21
|
+
input_group: { class: 'input-group effective_date_time_picker_input_group' },
|
22
|
+
prepend: (content_tag(:span, icon('calendar'), class: 'input-group-text') unless disabled?)
|
23
|
+
}
|
21
24
|
end
|
22
25
|
|
23
26
|
def datetime_to_s # ruby
|
@@ -161,7 +161,7 @@ module Effective
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def build_purge
|
164
|
-
return ''.html_safe unless purge?
|
164
|
+
return ''.html_safe unless purge? && !disabled?
|
165
165
|
|
166
166
|
label = (multiple? ? 'Delete existing files on save' : 'Delete existing file on save')
|
167
167
|
@builder.check_box('_purge', multiple: true, label: label, id: "#{tag_id}_purge", checked_value: name)
|
@@ -125,21 +125,21 @@ module Effective
|
|
125
125
|
|
126
126
|
def has_many_links_for(block)
|
127
127
|
return BLANK unless add? || reorder?
|
128
|
-
return BLANK
|
128
|
+
# We can't return BLANK when disabled? here or it breaks f.show_if
|
129
129
|
|
130
130
|
content_tag(:div, class: 'has-many-links mt-2') do
|
131
131
|
[*(link_to_add(block) if add?), *(link_to_reorder(block) if reorder?)].join(' ').html_safe
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
135
|
-
def render_resource(resource, block)
|
135
|
+
def render_resource(resource, block, skip_disabled: nil)
|
136
136
|
remove = BLANK
|
137
137
|
reorder = BLANK
|
138
138
|
insert = BLANK
|
139
139
|
can_remove = (can_remove_method.blank? || !!resource.send(can_remove_method))
|
140
140
|
|
141
141
|
content = @builder.fields_for(name, resource) do |form|
|
142
|
-
form.disabled = disabled?
|
142
|
+
form.disabled = disabled? unless skip_disabled
|
143
143
|
|
144
144
|
fields = block.call(form)
|
145
145
|
|
@@ -149,11 +149,11 @@ module Effective
|
|
149
149
|
fields
|
150
150
|
end
|
151
151
|
|
152
|
-
if remove?
|
152
|
+
if remove?
|
153
153
|
remove += (can_remove || resource.new_record?) ? link_to_remove(resource) : disabled_link_to_remove(resource)
|
154
154
|
end
|
155
155
|
|
156
|
-
if insert?
|
156
|
+
if insert?
|
157
157
|
insert = render_insert() if add? && reorder?
|
158
158
|
end
|
159
159
|
|
@@ -188,14 +188,18 @@ module Effective
|
|
188
188
|
content_tag(:div, link_to_insert(), class: 'has-many-actions')
|
189
189
|
end
|
190
190
|
|
191
|
-
def render_template(block)
|
191
|
+
def render_template(block, skip_disabled: nil)
|
192
192
|
resource = build_resource()
|
193
|
-
|
193
|
+
length = collection.length
|
194
194
|
|
195
|
-
html = render_resource(resource, block)
|
195
|
+
html = render_resource(resource, block, skip_disabled: skip_disabled)
|
196
196
|
|
197
|
-
|
198
|
-
|
197
|
+
# Guess the index
|
198
|
+
index = length if html.include?("#{name}_attributes][#{length}]")
|
199
|
+
index ||= html.match(/#{name}_attributes\]\[(\d+)\]/).try(:[], 1).try(:to_i)
|
200
|
+
|
201
|
+
if index.blank?
|
202
|
+
raise('unknown index. unable to render resource template.')
|
199
203
|
end
|
200
204
|
|
201
205
|
html.gsub!("#{name}_attributes][#{index}]", "#{name}_attributes][HASMANYINDEX]")
|
@@ -212,7 +216,7 @@ module Effective
|
|
212
216
|
title: 'Add Another',
|
213
217
|
data: {
|
214
218
|
'effective-form-has-many-add': true,
|
215
|
-
'effective-form-has-many-template': render_template(block)
|
219
|
+
'effective-form-has-many-template': render_template(block, skip_disabled: true)
|
216
220
|
}
|
217
221
|
)
|
218
222
|
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: 1.16.
|
4
|
+
version: 1.16.3
|
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: 2023-10-
|
11
|
+
date: 2023-10-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|