cm-admin 0.8.7 → 0.8.9
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 +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
|