cm-admin 0.8.7 → 0.8.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +4 -6
- data/app/assets/stylesheets/cm_admin/base/scaffold.scss +1 -1
- data/app/assets/stylesheets/cm_admin/base/table.scss +0 -1
- data/app/controllers/cm_admin/resource_controller.rb +20 -17
- data/app/helpers/cm_admin/application_helper.rb +6 -0
- data/app/models/concerns/cm_admin/file_import.rb +13 -7
- data/app/views/cm_admin/main/_associated_table.html.slim +5 -2
- data/app/views/cm_admin/main/_table.html.slim +1 -1
- data/lib/cm-admin.rb +1 -0
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/field_display_helper.rb +4 -0
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51174128fc2fd12fde48837a9271d8e51bb84d847379c6052080cf3de2c8745f
|
4
|
+
data.tar.gz: 9b2381f05a97106e9b3a1d8e117d71721a8d55ff080dcee96a38d77d819f0bf4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ecc29569a31a996554a0360d3bbc52942f30b90692c5de67afdb7f1e6c79ebfab25736892a0093e9ef209821ee3950fad8df69934b36626151ca4af6d7dde10
|
7
|
+
data.tar.gz: 28018ef669025bb8b62d5127036efca2bfb32e944761089f74b17c9eccbed9f5f3db932ac9fe94fb50b120b2b5c8c3829e78b2b1cecf1478809577d8651c3dc8
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cm-admin (0.8.
|
4
|
+
cm-admin (0.8.9)
|
5
5
|
caxlsx_rails
|
6
6
|
cocoon (~> 1.2.15)
|
7
7
|
csv-importer (~> 0.8.2)
|
@@ -38,7 +38,7 @@ GEM
|
|
38
38
|
ice_nine (~> 0.11.0)
|
39
39
|
thread_safe (~> 0.3, >= 0.3.1)
|
40
40
|
builder (3.2.4)
|
41
|
-
caxlsx (3.
|
41
|
+
caxlsx (3.3.0)
|
42
42
|
htmlentities (~> 4.3, >= 4.3.4)
|
43
43
|
marcel (~> 1.0)
|
44
44
|
nokogiri (~> 1.10, >= 1.10.4)
|
@@ -67,10 +67,8 @@ GEM
|
|
67
67
|
nokogiri (>= 1.5.9)
|
68
68
|
marcel (1.0.2)
|
69
69
|
method_source (1.0.0)
|
70
|
-
mini_portile2 (2.8.0)
|
71
70
|
minitest (5.16.2)
|
72
|
-
nokogiri (1.13.
|
73
|
-
mini_portile2 (~> 2.8.0)
|
71
|
+
nokogiri (1.13.9-arm64-darwin)
|
74
72
|
racc (~> 1.4)
|
75
73
|
pagy (4.11.0)
|
76
74
|
parallel (1.22.1)
|
@@ -146,7 +144,7 @@ GEM
|
|
146
144
|
rack-proxy (>= 0.6.1)
|
147
145
|
railties (>= 5.2)
|
148
146
|
semantic_range (>= 2.3.0)
|
149
|
-
zeitwerk (2.6.
|
147
|
+
zeitwerk (2.6.4)
|
150
148
|
|
151
149
|
PLATFORMS
|
152
150
|
ruby
|
@@ -153,22 +153,25 @@ module CmAdmin
|
|
153
153
|
end
|
154
154
|
|
155
155
|
def custom_controller_action(action_name, params)
|
156
|
-
current_action = CmAdmin::Models::Action.find_by(@model, name: action_name.to_s)
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
156
|
+
@current_action = CmAdmin::Models::Action.find_by(@model, name: action_name.to_s)
|
157
|
+
return unless @current_action
|
158
|
+
|
159
|
+
@ar_object = @model.ar_model.name.classify.constantize.find(params[:id])
|
160
|
+
return @ar_object unless @current_action.child_records
|
161
|
+
|
162
|
+
child_records = @ar_object.send(@current_action.child_records)
|
163
|
+
@reflection = @model.ar_model.reflect_on_association(@current_action.child_records)
|
164
|
+
@associated_model = if @reflection.klass.column_names.include?('type')
|
165
|
+
CmAdmin::Model.find_by(name: @reflection.plural_name.classify)
|
166
|
+
else
|
167
|
+
CmAdmin::Model.find_by(name: @reflection.klass.name)
|
168
|
+
end
|
169
|
+
@associated_ar_object = if child_records.is_a? ActiveRecord::Relation
|
170
|
+
filter_by(params, child_records, @associated_model.filter_params(params))
|
171
|
+
else
|
172
|
+
child_records
|
173
|
+
end
|
174
|
+
return @ar_object, @associated_model, @associated_ar_object
|
172
175
|
end
|
173
176
|
|
174
177
|
def filter_by(params, records, filter_params={}, sort_params={})
|
@@ -176,7 +179,7 @@ module CmAdmin
|
|
176
179
|
sort_column = "created_at"
|
177
180
|
sort_direction = %w[asc desc].include?(sort_params[:sort_direction]) ? sort_params[:sort_direction] : "asc"
|
178
181
|
sort_params = {sort_column: sort_column, sort_direction: sort_direction}
|
179
|
-
|
182
|
+
|
180
183
|
records = "CmAdmin::#{@model.name}Policy::Scope".constantize.new(Current.user, @model.name.constantize).resolve if records.nil?
|
181
184
|
records = records.order("#{@current_action.sort_column} #{@current_action.sort_direction}")
|
182
185
|
final_data = CmAdmin::Models::Filter.filtered_data(filter_params, records, @associated_model ? @associated_model.filters : @model.filters)
|
@@ -9,23 +9,29 @@ module CmAdmin::FileImport
|
|
9
9
|
page_title 'File Import'
|
10
10
|
page_description 'Manage all file import progress here'
|
11
11
|
|
12
|
+
filter [:id, :associated_model_name], :search, placeholder: 'ID, Table Name'
|
13
|
+
filter :status, :single_select,
|
14
|
+
collection: %w[in_progress success failed],
|
15
|
+
placeholder: 'Status'
|
16
|
+
filter :created_at, :date, placeholder: 'Created At'
|
17
|
+
|
12
18
|
column :id
|
13
19
|
column :imported_file_name, header: 'File'
|
14
|
-
column :created_at, header: '
|
15
|
-
column :completed_at, header: 'Completed At', field_type: :datetime, format: '%B %d, %Y, %H:%M %p'
|
16
|
-
column :associated_model_name, header: 'Model name'
|
17
|
-
column :added_by_name, header: 'Uploaded By'
|
20
|
+
column :created_at, header: 'Created At', field_type: :datetime, format: '%B %d, %Y, %H:%M %p'
|
18
21
|
column :status, field_type: :tag, tag_class: STATUS_TAG_COLOR
|
22
|
+
column :associated_model_name, header: 'Table name'
|
23
|
+
column :added_by_name, header: 'Uploaded By'
|
24
|
+
|
19
25
|
end
|
20
26
|
|
21
27
|
cm_show page_title: :id do
|
22
28
|
tab :profile, '' do
|
23
29
|
cm_show_section 'Import details' do
|
24
30
|
field :id, label: 'Import ID'
|
25
|
-
field :
|
26
|
-
field :created_at, header: '
|
31
|
+
field :import_file, label: 'File', field_type: :attachment
|
32
|
+
field :created_at, header: 'Created At', field_type: :datetime, format: '%B %d, %Y, %H:%M %p'
|
27
33
|
field :completed_at, header: 'Completed At', field_type: :datetime, format: '%B %d, %Y, %H:%M %p'
|
28
|
-
field :associated_model_name, header: '
|
34
|
+
field :associated_model_name, header: 'Table name'
|
29
35
|
field :added_by_name, header: 'Uploaded By'
|
30
36
|
field :status, field_type: :tag, tag_class: STATUS_TAG_COLOR
|
31
37
|
end
|
@@ -35,11 +35,14 @@
|
|
35
35
|
/ input.cm-checkbox type="checkbox"
|
36
36
|
- @model.available_fields[@action.name.to_sym].each_with_index do |column, index|
|
37
37
|
td class="text-ellipsis"
|
38
|
-
span class="#{column.cm_css_class}"
|
39
|
-
- if index == 0 && @associated_model
|
38
|
+
span class="#{column.field_type.to_s} #{column.cm_css_class} "
|
39
|
+
- if index == 0 && is_show_action_available(@associated_model)
|
40
40
|
a href="#{CmAdmin::Engine.mount_path}/#{@associated_model.name.tableize}/#{ar_object.id}" = show_field_value(ar_object, column)
|
41
41
|
- else
|
42
42
|
= show_field_value(ar_object, column)
|
43
|
+
- if column.field_type == :drawer
|
44
|
+
= render partial: column.drawer_partial, locals: { ar_object: ar_object }
|
45
|
+
|
43
46
|
- if @associated_model
|
44
47
|
== render partial: 'cm_admin/main/actions_dropdown', locals: { cm_model: @associated_model, ar_object: ar_object }
|
45
48
|
|
@@ -28,7 +28,7 @@
|
|
28
28
|
- if column.display_if.call(Current.user)
|
29
29
|
td.text-ellipsis
|
30
30
|
span class="#{column.field_type.to_s} #{column.cm_css_class} "
|
31
|
-
- if index == 0 && !([:link, :custom, :attachment, :drawer, :image].include?(column.field_type))
|
31
|
+
- if index == 0 && is_show_action_available(@model) && !([:link, :custom, :attachment, :drawer, :image].include?(column.field_type))
|
32
32
|
= link_to ar_object.send(column.field_name), cm_admin.send("#{ar_object.model_name.singular}_show_path", ar_object.id)
|
33
33
|
- else
|
34
34
|
= show_field_value(ar_object, column)
|
data/lib/cm-admin.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'cm_admin'
|
data/lib/cm_admin/version.rb
CHANGED
@@ -35,6 +35,9 @@ module CmAdmin
|
|
35
35
|
when :datetime
|
36
36
|
self.extend LocalTimeHelper
|
37
37
|
local_time(ar_object.send(field.field_name).strftime(field.format || "%d/%m/%Y").to_s) if ar_object.send(field.field_name)
|
38
|
+
when :date
|
39
|
+
self.extend LocalTimeHelper
|
40
|
+
local_date(ar_object.send(field.field_name), (field.format || '%B %e, %Y'))
|
38
41
|
when :text
|
39
42
|
ar_object.send(field.field_name)
|
40
43
|
when :custom
|
@@ -88,6 +91,7 @@ module CmAdmin
|
|
88
91
|
end
|
89
92
|
end
|
90
93
|
end
|
94
|
+
|
91
95
|
end
|
92
96
|
end
|
93
97
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cm-admin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- sajinmp
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
12
|
cert_chain: []
|
13
|
-
date: 2022-
|
13
|
+
date: 2022-11-21 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: caxlsx_rails
|
@@ -231,6 +231,7 @@ files:
|
|
231
231
|
- config/webpack/test.js
|
232
232
|
- config/webpacker.yml
|
233
233
|
- lib/.DS_Store
|
234
|
+
- lib/cm-admin.rb
|
234
235
|
- lib/cm_admin.rb
|
235
236
|
- lib/cm_admin/configuration.rb
|
236
237
|
- lib/cm_admin/constants.rb
|