cm-admin 0.7.4 → 0.7.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|