cm-admin 0.7.4 → 0.7.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +24 -22
- data/README.md +1 -1
- data/app/controllers/cm_admin/application_controller.rb +1 -2
- data/app/controllers/cm_admin/resource_controller.rb +194 -0
- data/app/javascript/packs/cm_admin/application.js +2 -0
- data/app/views/cm_admin/main/_actions_dropdown.html.slim +52 -0
- data/app/views/cm_admin/main/_associated_table.html.slim +2 -35
- data/app/views/cm_admin/main/_table.html.slim +3 -34
- data/cm_admin.gemspec +4 -3
- data/lib/cm_admin/model.rb +13 -67
- data/lib/cm_admin/models/action.rb +10 -0
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/action_dropdown_helper.rb +21 -0
- data/lib/cm_admin/view_helpers/field_display_helper.rb +2 -2
- data/lib/cm_admin/view_helpers.rb +6 -3
- data/lib/generators/cm_admin/add_authentication_generator.rb +31 -0
- data/lib/generators/cm_admin/templates/application_controller.rb +8 -0
- data/lib/generators/cm_admin/templates/authentication.rb +14 -0
- data/lib/generators/cm_admin/templates/cm_admin_initializer.rb +2 -0
- data/lib/generators/cm_admin/templates/current.rb +9 -0
- data/package-lock.json +20255 -0
- data/package.json +3 -2
- data/tmp/cache/webpacker/last-compilation-digest-development +1 -1
- data/yarn.lock +6284 -6148
- metadata +46 -25
- data/lib/cm_admin/models/controller_method.rb +0 -99
metadata
CHANGED
@@ -1,101 +1,115 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cm-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sajinmp
|
8
8
|
- anbublacky
|
9
9
|
- AdityaTiwari2102
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-
|
13
|
+
date: 2022-07-20 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
|
-
name:
|
16
|
+
name: axlsx_rails
|
17
17
|
requirement: !ruby/object:Gem::Requirement
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
21
|
+
version: 0.6.1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version:
|
28
|
+
version: 0.6.1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
30
|
+
name: cocoon
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
35
|
+
version: 1.2.15
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 1.2.15
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
|
-
name:
|
44
|
+
name: local_time
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version:
|
49
|
+
version: 2.1.0
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - "~>"
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version:
|
56
|
+
version: 2.1.0
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
|
-
name:
|
58
|
+
name: pagy
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
63
|
+
version: 4.11.0
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version:
|
70
|
+
version: 4.11.0
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
|
-
name:
|
72
|
+
name: pundit
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
74
74
|
requirements:
|
75
75
|
- - "~>"
|
76
76
|
- !ruby/object:Gem::Version
|
77
|
-
version:
|
77
|
+
version: 2.2.0
|
78
78
|
type: :runtime
|
79
79
|
prerelease: false
|
80
80
|
version_requirements: !ruby/object:Gem::Requirement
|
81
81
|
requirements:
|
82
82
|
- - "~>"
|
83
83
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
84
|
+
version: 2.2.0
|
85
85
|
- !ruby/object:Gem::Dependency
|
86
|
-
name:
|
86
|
+
name: slim
|
87
87
|
requirement: !ruby/object:Gem::Requirement
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version:
|
91
|
+
version: 4.1.0
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version:
|
98
|
+
version: 4.1.0
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: webpacker
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: 5.4.3
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: 5.4.3
|
99
113
|
description: This is an admin panel gem
|
100
114
|
email:
|
101
115
|
- sajinprasadkm@gmail.com
|
@@ -144,6 +158,7 @@ files:
|
|
144
158
|
- app/assets/stylesheets/cm_admin/scaffold.scss
|
145
159
|
- app/controllers/cm_admin/application_controller.rb
|
146
160
|
- app/controllers/cm_admin/exports_controller.rb
|
161
|
+
- app/controllers/cm_admin/resource_controller.rb
|
147
162
|
- app/controllers/cm_admin/static_controller.rb
|
148
163
|
- app/helpers/cm_admin/application_helper.rb
|
149
164
|
- app/helpers/cm_admin/custom_helper.rb
|
@@ -154,6 +169,7 @@ files:
|
|
154
169
|
- app/javascript/packs/cm_admin/quick_search.js
|
155
170
|
- app/javascript/packs/cm_admin/scaffolds.js
|
156
171
|
- app/javascript/stylesheets/cm_admin/application.scss
|
172
|
+
- app/views/cm_admin/main/_actions_dropdown.html.slim
|
157
173
|
- app/views/cm_admin/main/_associated_table.html.slim
|
158
174
|
- app/views/cm_admin/main/_cm_pagy_nav.html.slim
|
159
175
|
- app/views/cm_admin/main/_drawer.html.slim
|
@@ -203,7 +219,6 @@ files:
|
|
203
219
|
- lib/cm_admin/models/blocks.rb
|
204
220
|
- lib/cm_admin/models/cm_show_section.rb
|
205
221
|
- lib/cm_admin/models/column.rb
|
206
|
-
- lib/cm_admin/models/controller_method.rb
|
207
222
|
- lib/cm_admin/models/custom_action.rb
|
208
223
|
- lib/cm_admin/models/dsl_method.rb
|
209
224
|
- lib/cm_admin/models/export.rb
|
@@ -214,6 +229,7 @@ files:
|
|
214
229
|
- lib/cm_admin/utils.rb
|
215
230
|
- lib/cm_admin/version.rb
|
216
231
|
- lib/cm_admin/view_helpers.rb
|
232
|
+
- lib/cm_admin/view_helpers/action_dropdown_helper.rb
|
217
233
|
- lib/cm_admin/view_helpers/field_display_helper.rb
|
218
234
|
- lib/cm_admin/view_helpers/filter_helper.rb
|
219
235
|
- lib/cm_admin/view_helpers/form_field_helper.rb
|
@@ -221,15 +237,20 @@ files:
|
|
221
237
|
- lib/cm_admin/view_helpers/manage_column_popup_helper.rb
|
222
238
|
- lib/cm_admin/view_helpers/navigation_helper.rb
|
223
239
|
- lib/cm_admin/view_helpers/page_info_helper.rb
|
240
|
+
- lib/generators/cm_admin/add_authentication_generator.rb
|
224
241
|
- lib/generators/cm_admin/install_generator.rb
|
225
242
|
- lib/generators/cm_admin/policy_generator.rb
|
226
243
|
- lib/generators/cm_admin/templates/actiontext.scss
|
244
|
+
- lib/generators/cm_admin/templates/application_controller.rb
|
227
245
|
- lib/generators/cm_admin/templates/application_policy.rb
|
246
|
+
- lib/generators/cm_admin/templates/authentication.rb
|
228
247
|
- lib/generators/cm_admin/templates/cm_admin_initializer.rb
|
248
|
+
- lib/generators/cm_admin/templates/current.rb
|
229
249
|
- lib/generators/cm_admin/templates/custom.css
|
230
250
|
- lib/generators/cm_admin/templates/custom.js
|
231
251
|
- lib/generators/cm_admin/templates/policy.rb
|
232
252
|
- lib/tasks/webpack_install.rake
|
253
|
+
- package-lock.json
|
233
254
|
- package.json
|
234
255
|
- postcss.config.js
|
235
256
|
- tmp/cache/webpacker/last-compilation-digest-development
|
@@ -240,7 +261,7 @@ licenses:
|
|
240
261
|
metadata:
|
241
262
|
homepage_uri: https://github.com/commutatus/cm-admin
|
242
263
|
source_code_uri: https://github.com/commutatus/cm-admin
|
243
|
-
post_install_message:
|
264
|
+
post_install_message:
|
244
265
|
rdoc_options: []
|
245
266
|
require_paths:
|
246
267
|
- lib
|
@@ -255,8 +276,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
255
276
|
- !ruby/object:Gem::Version
|
256
277
|
version: '0'
|
257
278
|
requirements: []
|
258
|
-
rubygems_version: 3.2.
|
259
|
-
signing_key:
|
279
|
+
rubygems_version: 3.2.3
|
280
|
+
signing_key:
|
260
281
|
specification_version: 4
|
261
282
|
summary: This is an admin panel gem
|
262
283
|
test_files: []
|
@@ -1,99 +0,0 @@
|
|
1
|
-
module CmAdmin
|
2
|
-
module Models
|
3
|
-
module ControllerMethod
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
def show(params)
|
7
|
-
@current_action = CmAdmin::Models::Action.find_by(self, name: 'show')
|
8
|
-
scoped_model = "CmAdmin::#{self.name}Policy::Scope".constantize.new(Current.user, self.name.constantize).resolve
|
9
|
-
@ar_object = scoped_model.find(params[:id])
|
10
|
-
end
|
11
|
-
|
12
|
-
def index(params)
|
13
|
-
@current_action = CmAdmin::Models::Action.find_by(self, name: 'index')
|
14
|
-
# Based on the params the filter and pagination object to be set
|
15
|
-
@ar_object = filter_by(params, nil, filter_params(params))
|
16
|
-
end
|
17
|
-
|
18
|
-
def new(params)
|
19
|
-
@current_action = CmAdmin::Models::Action.find_by(self, name: 'new')
|
20
|
-
@ar_object = @ar_model.new
|
21
|
-
end
|
22
|
-
|
23
|
-
def edit(params)
|
24
|
-
@current_action = CmAdmin::Models::Action.find_by(self, name: 'edit')
|
25
|
-
@ar_object = @ar_model.name.classify.constantize.find(params[:id])
|
26
|
-
end
|
27
|
-
|
28
|
-
def update(params)
|
29
|
-
@ar_object = @ar_model.name.classify.constantize.find(params[:id])
|
30
|
-
@ar_object.assign_attributes(resource_params(params))
|
31
|
-
@ar_object
|
32
|
-
end
|
33
|
-
|
34
|
-
|
35
|
-
def create(params)
|
36
|
-
@ar_object = @ar_model.name.classify.constantize.new(resource_params(params))
|
37
|
-
end
|
38
|
-
|
39
|
-
def destroy(params)
|
40
|
-
@ar_object = @ar_model.name.classify.constantize.find(params[:id])
|
41
|
-
@ar_object.destroy
|
42
|
-
end
|
43
|
-
|
44
|
-
def filter_by(params, records, filter_params={}, sort_params={})
|
45
|
-
filtered_result = OpenStruct.new
|
46
|
-
sort_column = "created_at"
|
47
|
-
sort_direction = %w[asc desc].include?(sort_params[:sort_direction]) ? sort_params[:sort_direction] : "asc"
|
48
|
-
sort_params = {sort_column: sort_column, sort_direction: sort_direction}
|
49
|
-
|
50
|
-
records = "CmAdmin::#{self.name}Policy::Scope".constantize.new(Current.user, self.name.constantize).resolve if records.nil?
|
51
|
-
records = records.order("#{current_action.sort_column} #{current_action.sort_direction}")
|
52
|
-
|
53
|
-
final_data = CmAdmin::Models::Filter.filtered_data(filter_params, records, @filters)
|
54
|
-
pagy, records = pagy(final_data)
|
55
|
-
filtered_result.data = records
|
56
|
-
filtered_result.pagy = pagy
|
57
|
-
# filtered_result.facets = paginate(page, raw_data.size)
|
58
|
-
# filtered_result.sort = sort_params
|
59
|
-
# filtered_result.facets.sort = sort_params
|
60
|
-
return filtered_result
|
61
|
-
end
|
62
|
-
|
63
|
-
def resource_params(params)
|
64
|
-
permittable_fields = @permitted_fields || @ar_model.columns.map(&:name).reject { |i| CmAdmin::REJECTABLE_FIELDS.include?(i) }.map(&:to_sym)
|
65
|
-
permittable_fields += @ar_model.name.constantize.reflect_on_all_associations.map {|x|
|
66
|
-
next if x.options[:polymorphic]
|
67
|
-
# The first if statement is added for compatibilty with cm-page-builder.
|
68
|
-
# One of the associated models of cm-page-builder was throwing error.
|
69
|
-
# The associated model is CmPageBuilder::Rails::PageComponent.
|
70
|
-
# When using reflection, the value of klass of the above association is uninitialized.
|
71
|
-
# As a result, it was throwing error in the 2nd elsif statement.
|
72
|
-
if x.name == :page_components
|
73
|
-
x.name
|
74
|
-
elsif x.klass.name == "ActiveStorage::Attachment"
|
75
|
-
if x.class.name.include?('HasOne')
|
76
|
-
x.name.to_s.gsub('_attachment', '').to_sym
|
77
|
-
elsif x.class.name.include?('HasMany')
|
78
|
-
Hash[x.name.to_s.gsub('_attachment', ''), []]
|
79
|
-
end
|
80
|
-
elsif x.klass.name == "ActionText::RichText"
|
81
|
-
x.name.to_s.gsub('rich_text_', '').to_sym
|
82
|
-
end
|
83
|
-
}.compact
|
84
|
-
nested_tables = self.available_fields[:new].except(:fields).keys
|
85
|
-
nested_tables += self.available_fields[:edit].except(:fields).keys
|
86
|
-
nested_fields = nested_tables.uniq.map {|table|
|
87
|
-
Hash[
|
88
|
-
table.to_s + '_attributes',
|
89
|
-
table.to_s.classify.constantize.columns.map(&:name).reject { |i| CmAdmin::REJECTABLE_FIELDS.include?(i) }.map(&:to_sym) + [:id, :_destroy]
|
90
|
-
]
|
91
|
-
}
|
92
|
-
permittable_fields += nested_fields
|
93
|
-
@ar_model.columns.map { |col| permittable_fields << col.name.split('_cents') if col.name.include?('_cents') }
|
94
|
-
|
95
|
-
params.require(self.name.underscore.to_sym).permit(*permittable_fields)
|
96
|
-
end
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|