cm-admin 1.1.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +13 -11
- data/app/controllers/cm_admin/resource_controller.rb +4 -3
- data/app/views/cm_admin/main/_nested_table_form.html.slim +6 -5
- data/app/views/layouts/_left_sidebar_nav.html.slim +2 -2
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/field_display_helper.rb +22 -3
- data/lib/cm_admin/view_helpers/form_helper.rb +1 -1
- data/lib/cm_admin/view_helpers/navigation_helper.rb +1 -1
- data/package-lock.json +4877 -14029
- 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: 6ca2b1b912d7ae2bc0925180a861cba806874e54baa273c2176af245e68940c0
|
4
|
+
data.tar.gz: d56e8c3155712a502cab04a22aa209877988cc85593d56008155e0daf7d4778b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d71ce2f05820e692c76d40db3fee7f646066a3bff0c1341b2ef78dae62339f6d750bfacc38d4a8d4676ce73b5bb502469487c93a9a32246281d3bdfa14eb2933
|
7
|
+
data.tar.gz: 564ddd3e0842b3ce7505e41f4f34a26a55bb3428aac6e7c9960af3bf34cb2c17877f4c251c0c3f6f54981d19a2f33fc87b2a761d6782f55a4a9d231e9ae044b6
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cm-admin (1.1.
|
4
|
+
cm-admin (1.1.2)
|
5
5
|
caxlsx_rails
|
6
6
|
cocoon (~> 1.2.15)
|
7
7
|
csv-importer (~> 0.8.2)
|
@@ -87,7 +87,7 @@ GEM
|
|
87
87
|
ice_nine (~> 0.11.0)
|
88
88
|
thread_safe (~> 0.3, >= 0.3.1)
|
89
89
|
builder (3.2.4)
|
90
|
-
caxlsx (3.4.
|
90
|
+
caxlsx (3.4.1)
|
91
91
|
htmlentities (~> 4.3, >= 4.3.4)
|
92
92
|
marcel (~> 1.0)
|
93
93
|
nokogiri (~> 1.10, >= 1.10.4)
|
@@ -113,7 +113,7 @@ GEM
|
|
113
113
|
i18n (1.11.0)
|
114
114
|
concurrent-ruby (~> 1.0)
|
115
115
|
ice_nine (0.11.2)
|
116
|
-
importmap-rails (1.1
|
116
|
+
importmap-rails (1.2.1)
|
117
117
|
actionpack (>= 6.0.0)
|
118
118
|
railties (>= 6.0.0)
|
119
119
|
json (2.6.2)
|
@@ -130,7 +130,7 @@ GEM
|
|
130
130
|
method_source (1.0.0)
|
131
131
|
mini_mime (1.1.2)
|
132
132
|
minitest (5.16.2)
|
133
|
-
net-imap (0.3.
|
133
|
+
net-imap (0.3.6)
|
134
134
|
date
|
135
135
|
net-protocol
|
136
136
|
net-pop (0.1.2)
|
@@ -140,7 +140,7 @@ GEM
|
|
140
140
|
net-smtp (0.3.3)
|
141
141
|
net-protocol
|
142
142
|
nio4r (2.5.9)
|
143
|
-
nokogiri (1.15.
|
143
|
+
nokogiri (1.15.2-arm64-darwin)
|
144
144
|
racc (~> 1.4)
|
145
145
|
pagy (4.11.0)
|
146
146
|
parallel (1.22.1)
|
@@ -148,7 +148,7 @@ GEM
|
|
148
148
|
ast (~> 2.4.1)
|
149
149
|
pundit (2.2.0)
|
150
150
|
activesupport (>= 3.0.0)
|
151
|
-
racc (1.
|
151
|
+
racc (1.7.1)
|
152
152
|
rack (2.2.6.4)
|
153
153
|
rack-proxy (0.7.6)
|
154
154
|
rack
|
@@ -168,11 +168,13 @@ GEM
|
|
168
168
|
activesupport (= 7.0.3.1)
|
169
169
|
bundler (>= 1.15.0)
|
170
170
|
railties (= 7.0.3.1)
|
171
|
-
rails-dom-testing (2.
|
172
|
-
activesupport (>=
|
171
|
+
rails-dom-testing (2.1.1)
|
172
|
+
activesupport (>= 5.0.0)
|
173
|
+
minitest
|
173
174
|
nokogiri (>= 1.6)
|
174
|
-
rails-html-sanitizer (1.
|
175
|
-
loofah (~> 2.
|
175
|
+
rails-html-sanitizer (1.6.0)
|
176
|
+
loofah (~> 2.21)
|
177
|
+
nokogiri (~> 1.14)
|
176
178
|
railties (7.0.3.1)
|
177
179
|
actionpack (= 7.0.3.1)
|
178
180
|
activesupport (= 7.0.3.1)
|
@@ -226,7 +228,7 @@ GEM
|
|
226
228
|
thor (1.2.2)
|
227
229
|
thread_safe (0.3.6)
|
228
230
|
tilt (2.0.10)
|
229
|
-
timeout (0.
|
231
|
+
timeout (0.4.0)
|
230
232
|
tzinfo (2.0.4)
|
231
233
|
concurrent-ruby (~> 1.0)
|
232
234
|
unicode-display_width (2.3.0)
|
@@ -237,10 +237,11 @@ module CmAdmin
|
|
237
237
|
}.compact
|
238
238
|
nested_tables = @model.available_fields[:new].map(&:nested_table_fields).map(&:keys).flatten
|
239
239
|
nested_tables += @model.available_fields[:edit].map(&:nested_table_fields).map(&:keys).flatten
|
240
|
-
nested_fields = nested_tables.uniq.map {|
|
240
|
+
nested_fields = nested_tables.uniq.map {|assoc_name|
|
241
|
+
table_name = @ar_object._reflections[assoc_name.to_s].klass.table_name
|
241
242
|
Hash[
|
242
|
-
|
243
|
-
|
243
|
+
table_name.to_s + '_attributes',
|
244
|
+
table_name.to_s.classify.constantize.column_names.reject { |i| CmAdmin::REJECTABLE_FIELDS.include?(i) }.map(&:to_sym) + [:id, :_destroy]
|
244
245
|
]
|
245
246
|
}
|
246
247
|
permittable_fields += nested_fields
|
@@ -1,9 +1,10 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
- table_name = @ar_object._reflections[assoc_name.to_s].klass.table_name.to_sym
|
2
|
+
.nested-field-wrapper data-table-name=assoc_name data-model-name=assoc_name.to_s.classify
|
3
|
+
label.nested-field-label = assoc_name.to_s.titleize
|
3
4
|
.accordion.nested-form-accordion
|
4
5
|
= f.fields_for table_name do |record|
|
5
6
|
- if record.object.persisted?
|
6
|
-
= render partial: '/cm_admin/main/nested_fields', locals: { f: record, assoc_name:
|
7
|
-
- if @reflections.select {|x| x if x.name ==
|
7
|
+
= render partial: '/cm_admin/main/nested_fields', locals: { f: record, assoc_name: assoc_name, section: section }
|
8
|
+
- if @reflections.select {|x| x if x.name == assoc_name}.first.macro == :has_many
|
8
9
|
.links
|
9
|
-
= link_to_add_association "+ Add #{
|
10
|
+
= link_to_add_association "+ Add #{assoc_name.to_s.titleize}", f, table_name, partial: '/cm_admin/main/nested_fields', render_options: {locals: { assoc_name: assoc_name, section: section }}, class: 'd-inline-block secondary-btn mt-2'
|
data/lib/cm_admin/version.rb
CHANGED
@@ -77,7 +77,17 @@ module CmAdmin
|
|
77
77
|
when :image
|
78
78
|
content_tag(:div, class: 'd-flex') do
|
79
79
|
if ar_object.send(field.field_name).attached?
|
80
|
-
|
80
|
+
if has_one_image_attached?(ar_object, field)
|
81
|
+
content_tag :a, href: rails_blob_path(ar_object.send(field.field_name)), target: '_blank' do
|
82
|
+
image_tag(ar_object.send(field.field_name).url, height: field.height, width: field.width, class: 'rounded')
|
83
|
+
end
|
84
|
+
elsif has_many_image_attached?(ar_object, field)
|
85
|
+
ar_object.send(field.field_name).map do |asset|
|
86
|
+
content_tag :a, href: rails_blob_path(asset), target: '_blank' do
|
87
|
+
image_tag(asset.url, height: field.height, width: field.width, class: 'rounded mr-1')
|
88
|
+
end
|
89
|
+
end.join("\n").html_safe
|
90
|
+
end
|
81
91
|
else
|
82
92
|
image_tag('https://cm-admin.s3.ap-south-1.amazonaws.com/gem_static_assets/image_not_available.png', height: 50, width: 50)
|
83
93
|
end
|
@@ -95,11 +105,11 @@ module CmAdmin
|
|
95
105
|
|
96
106
|
def show_attachment_value(ar_object, field)
|
97
107
|
if ar_object.send(field.field_name).attached?
|
98
|
-
if ar_object
|
108
|
+
if has_one_image_attached?(ar_object, field)
|
99
109
|
content_tag :a, href: rails_blob_path(ar_object.send(field.field_name), disposition: "attachment") do
|
100
110
|
ar_object.send(field.field_name).filename.to_s
|
101
111
|
end
|
102
|
-
elsif ar_object
|
112
|
+
elsif has_many_image_attached?(ar_object, field)
|
103
113
|
ar_object.send(field.field_name).map do |asset|
|
104
114
|
content_tag :a, href: rails_blob_path(asset, disposition: "attachment") do
|
105
115
|
asset.filename.to_s
|
@@ -114,6 +124,15 @@ module CmAdmin
|
|
114
124
|
return hash[association_name.to_sym] if hash.has_key?(association_name.to_sym)
|
115
125
|
end
|
116
126
|
end
|
127
|
+
|
128
|
+
def has_one_image_attached?(ar_object, field)
|
129
|
+
ar_object.send(field.field_name).class.name.include?('One')
|
130
|
+
end
|
131
|
+
|
132
|
+
def has_many_image_attached?(ar_object, field)
|
133
|
+
ar_object.send(field.field_name).class.name.include?('Many')
|
134
|
+
end
|
135
|
+
|
117
136
|
end
|
118
137
|
end
|
119
138
|
end
|
@@ -76,7 +76,7 @@ module CmAdmin
|
|
76
76
|
def set_nested_form_fields(form_obj, section)
|
77
77
|
content_tag(:div) do
|
78
78
|
section.nested_table_fields.keys.each do |key|
|
79
|
-
concat(render partial: '/cm_admin/main/nested_table_form', locals: {f: form_obj,
|
79
|
+
concat(render partial: '/cm_admin/main/nested_table_form', locals: {f: form_obj, assoc_name: key, section: section})
|
80
80
|
end
|
81
81
|
end
|
82
82
|
end
|