cm-admin 2.4.6 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/app/controllers/cm_admin/resource_controller.rb +10 -6
- data/app/views/cm_admin/main/_actions_dropdown.html.slim +4 -4
- data/app/views/cm_admin/main/_associated_table.html.slim +1 -0
- data/app/views/cm_admin/main/_card.html.slim +2 -4
- data/app/views/cm_admin/main/_custom_action_modal_form.html.slim +2 -2
- data/app/views/cm_admin/main/_table.html.slim +4 -6
- data/app/views/cm_admin/main/_tabs.html.slim +4 -4
- data/app/views/cm_admin/main/_top_navbar.html.slim +5 -5
- data/app/views/cm_admin/main/import_form.html.slim +2 -2
- data/app/views/cm_admin/roles/permissions.html.slim +2 -2
- data/app/views/layouts/_custom_action_modals.html.slim +2 -2
- data/app/views/layouts/_destroy_action_modal.html.slim +1 -1
- data/config/routes.rb +5 -5
- data/lib/cm_admin/version.rb +1 -1
- data/lib/cm_admin/view_helpers/field_display_helper.rb +2 -2
- data/lib/cm_admin/view_helpers/form_field_helper.rb +3 -3
- data/lib/cm_admin/view_helpers/page_info_helper.rb +2 -2
- 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: 6090c01fd1da2dcb938d36bdaddc8ec28b47379092b96bdd455f8cc36f06e08b
|
4
|
+
data.tar.gz: 110e87eadfebb684c650e5e80ed955c173369895f219cfd9f887887f75214cee
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b41a13562211711b6409bbfdae8e033a6dfe6de1978be096a65681870d2cba3f21048422a76f3d8d335507545710085ea29cfa9189cf6865d198f81781e8910e
|
7
|
+
data.tar.gz: b08b437deadaaf911dcd2af141a30986c58f4705bbe0b8f6591dc663c44c0f321c82c58253a4de89bf55e926fb3194043bc8ee768d9808f2a3718dce8c90bb56
|
data/Gemfile.lock
CHANGED
@@ -82,12 +82,16 @@ module CmAdmin
|
|
82
82
|
|
83
83
|
def cm_destroy(params)
|
84
84
|
@ar_object = fetch_ar_object(@model.ar_model.name.classify.constantize, params[:id])
|
85
|
-
redirect_url =
|
85
|
+
redirect_url = if params[:from_action] == 'show'
|
86
|
+
cm_admin.send("cm_index_#{@model.name.underscore}_path")
|
87
|
+
else
|
88
|
+
request.referrer || cm_admin.send("cm_index_#{@model.name.underscore}_path")
|
89
|
+
end
|
86
90
|
respond_to do |format|
|
87
91
|
if @ar_object.destroy
|
88
|
-
format.html {
|
92
|
+
format.html { redirect_to redirect_url, notice: "#{@model.formatted_name} was deleted" }
|
89
93
|
else
|
90
|
-
format.html {
|
94
|
+
format.html { redirect_to redirect_url, alert: "#{@model.formatted_name} could not be deleted" }
|
91
95
|
end
|
92
96
|
end
|
93
97
|
end
|
@@ -98,7 +102,7 @@ module CmAdmin
|
|
98
102
|
file_import = ::FileImport.new(allowed_params[:file_import])
|
99
103
|
file_import.added_by = Current.user
|
100
104
|
respond_to do |format|
|
101
|
-
format.html { redirect_back fallback_location: cm_admin.send("#{@model.name.underscore}
|
105
|
+
format.html { redirect_back fallback_location: cm_admin.send("cm_index_#{@model.name.underscore}_path"), notice: 'Your import is successfully queued.' } if file_import.save!
|
102
106
|
end
|
103
107
|
end
|
104
108
|
|
@@ -200,7 +204,7 @@ module CmAdmin
|
|
200
204
|
scoped_model = "CmAdmin::#{@model.name}Policy::#{params[:action_name].classify}Scope".constantize.new(Current.user, @model.name.constantize).resolve
|
201
205
|
@ar_object = fetch_ar_object(scoped_model, params[:id])
|
202
206
|
if params[:action_name] == 'destroy'
|
203
|
-
render partial: '/layouts/destroy_action_modal', locals: { ar_object: @ar_object }
|
207
|
+
render partial: '/layouts/destroy_action_modal', locals: { ar_object: @ar_object, from_action: 'custom_action_modal' }
|
204
208
|
else
|
205
209
|
custom_action = @model.available_actions.select { |x| x.name == params[:action_name].to_s }.first
|
206
210
|
render partial: '/layouts/custom_action_modal', locals: { custom_action:, ar_object: @ar_object }
|
@@ -262,7 +266,7 @@ module CmAdmin
|
|
262
266
|
elsif @current_action.redirect_to.present?
|
263
267
|
@current_action.redirect_to.call(@ar_object)
|
264
268
|
else
|
265
|
-
cm_admin.send("#{@model.name.underscore}
|
269
|
+
cm_admin.send("cm_show_#{@model.name.underscore}_path", @ar_object)
|
266
270
|
end
|
267
271
|
ActiveStorage::Attachment.where(id: params['attachment_destroy_ids']).destroy_all if params['attachment_destroy_ids'].present?
|
268
272
|
notice = if @current_action&.name == 'new'
|
@@ -11,9 +11,9 @@
|
|
11
11
|
.popup-card.table-export-popup.hidden
|
12
12
|
- if edit_action.present?
|
13
13
|
- if @associated_model
|
14
|
-
- path = cm_admin.send("#{current_model.name.underscore}
|
14
|
+
- path = cm_admin.send("cm_edit_#{current_model.name.underscore}_path", ar_object, referrer: request.path)
|
15
15
|
- else
|
16
|
-
- path = cm_admin.send("#{current_model.name.underscore}
|
16
|
+
- path = cm_admin.send("cm_edit_#{current_model.name.underscore}_path", ar_object)
|
17
17
|
= link_to path do
|
18
18
|
.popup-option
|
19
19
|
span
|
@@ -21,7 +21,7 @@
|
|
21
21
|
| Edit
|
22
22
|
- if destroy_action.present?
|
23
23
|
- if @associated_model
|
24
|
-
= button_to cm_admin.send("#{current_model.name.underscore}
|
24
|
+
= button_to cm_admin.send("cm_destroy_#{current_model.name.underscore}_path", ar_object, referrer: request.path), method: :delete, form: { data: { turbo_confirm: 'Are you sure?' } } do
|
25
25
|
.popup-option
|
26
26
|
span
|
27
27
|
i.fa.fa-trash
|
@@ -36,7 +36,7 @@
|
|
36
36
|
- if custom_action.display_if.call(ar_object)
|
37
37
|
- case custom_action.display_type
|
38
38
|
- when :button
|
39
|
-
= button_to cm_admin.send("#{cm_model.name.underscore}
|
39
|
+
= button_to cm_admin.send("cm_index_#{cm_model.name.underscore}_path") + '/' + custom_action.path.gsub(':id', ar_object.id.to_s), method: custom_action.verb do
|
40
40
|
.popup-option
|
41
41
|
span
|
42
42
|
i class="#{custom_action.icon_name}"
|
@@ -36,6 +36,7 @@
|
|
36
36
|
- @model.available_fields[@action.name.to_sym].each do |column|
|
37
37
|
- if column.display_if.call(Current.user) && column.viewable
|
38
38
|
th = column.header
|
39
|
+
th data-field-type='action-cell-th'
|
39
40
|
tbody.cm-table__body
|
40
41
|
- @associated_ar_object.data.each do |ar_object|
|
41
42
|
tr.body-row
|
@@ -4,9 +4,9 @@
|
|
4
4
|
p.table-top__total-count = "#{humanized_ar_collection_count(@ar_object.pagy.count, @model.formatted_name)}"
|
5
5
|
.table-top__column-action
|
6
6
|
.btn-group[role="group" aria-label="Basic example"]
|
7
|
-
a.btn.btn-ghost href="#{cm_admin.send("#{@model.name.underscore}
|
7
|
+
a.btn.btn-ghost href="#{cm_admin.send("cm_index_#{@model.name.underscore}_path")}?page=#{params[:page] || 1}"
|
8
8
|
i.fa.fa-table
|
9
|
-
a.btn.btn-ghost href="#{cm_admin.send("#{@model.name.underscore}
|
9
|
+
a.btn.btn-ghost href="#{cm_admin.send("cm_index_#{@model.name.underscore}_path")}?page=#{params[:page] || 1}&view_type=card"
|
10
10
|
i.fa.fa-table-cells
|
11
11
|
|
12
12
|
- bulk_actions = actions_filter(@model, @ar_object, :bulk_action)
|
@@ -37,8 +37,6 @@
|
|
37
37
|
| Table
|
38
38
|
p.m-0
|
39
39
|
| Nadim
|
40
|
-
/ h6.card-title
|
41
|
-
/ = link_to ar_object.send(column.field_name), cm_admin.send("#{ar_object.model_name.singular}_show_path", ar_object.id)
|
42
40
|
- else
|
43
41
|
p.card-text
|
44
42
|
= show_field_value(ar_object, column)
|
@@ -2,5 +2,5 @@
|
|
2
2
|
.modal-info data-section="bulk-action"
|
3
3
|
= custom_action.modal_configuration[:description]
|
4
4
|
.modal-footer
|
5
|
-
= simple_form_for(ar_object, url: cm_admin.send("#{
|
6
|
-
= f.button :submit, custom_action.modal_configuration[:confirmation_text] || 'Update', class: "btn btn-primary"
|
5
|
+
= simple_form_for(ar_object, url: cm_admin.send("cm_#{custom_action.name}_#{ar_object.class.name.underscore}_path", ar_object.id), method: custom_action.verb) do |f|
|
6
|
+
= f.button :submit, custom_action.modal_configuration[:confirmation_text] || 'Update', class: "btn btn-primary"
|
@@ -3,12 +3,12 @@
|
|
3
3
|
.table-top__column-action
|
4
4
|
- if @current_action.view_type == :card_view
|
5
5
|
.btn-group[role="group" aria-label="Card Toggle"]
|
6
|
-
a.btn.btn-ghost href="#{cm_admin.send("#{@model.name.underscore}
|
6
|
+
a.btn.btn-ghost href="#{cm_admin.send("cm_index_#{@model.name.underscore}_path")}?page=#{params[:page] || 1}"
|
7
7
|
i.fa.fa-table
|
8
|
-
a.btn.btn-ghost href="#{cm_admin.send("#{@model.name.underscore}
|
8
|
+
a.btn.btn-ghost href="#{cm_admin.send("cm_index_#{@model.name.underscore}_path")}?page=#{params[:page] || 1}&view_type=card"
|
9
9
|
i.fa.fa-table-cells
|
10
10
|
- if @model.sort_columns.present?
|
11
|
-
|
11
|
+
= render 'cm_admin/main/sort', model: @model, ar_object: @ar_object
|
12
12
|
|
13
13
|
- if flash[:bulk_action_success].present?
|
14
14
|
.alert.alert-success.me-4 role="success"
|
@@ -42,7 +42,7 @@
|
|
42
42
|
- if column.display_if.call(Current.user) && column.viewable
|
43
43
|
td.text-ellipsis data-field-type="#{column.field_type || 'string'}"
|
44
44
|
- if index == 0 && is_show_action_available(@model, ar_object) && !([:link, :custom, :attachment, :drawer, :image].include?(column.field_type))
|
45
|
-
= link_to ar_object.send(column.field_name), cm_admin.send("#{ar_object.model_name.singular}
|
45
|
+
= link_to ar_object.send(column.field_name), cm_admin.send("cm_show_#{ar_object.model_name.singular}_path", ar_object)
|
46
46
|
- else
|
47
47
|
= show_field_value(ar_object, column)
|
48
48
|
- if column.field_type == :drawer
|
@@ -52,5 +52,3 @@
|
|
52
52
|
.pagination-bar
|
53
53
|
p.count-text.m-0 Showing #{@ar_object.pagy.from} to #{@ar_object.pagy.to} out of #{@ar_object.pagy.count}
|
54
54
|
== render partial: 'cm_admin/main/cm_pagy_nav', locals: { pagy: @ar_object.pagy }
|
55
|
-
|
56
|
-
/ = render partial: 'cm_admin/main/member_custom_action_modal', locals: { cm_model: @model, ar_collection: @ar_object }
|
@@ -5,10 +5,10 @@ ul.tabs
|
|
5
5
|
li.nav-item
|
6
6
|
- nav_item_action_name = nav_item.custom_action.present? ? nav_item.custom_action : 'show'
|
7
7
|
- if via_xhr
|
8
|
-
= link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("#{@ar_object.model_name.singular}
|
8
|
+
= link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("cm_#{nav_item_action_name}_#{@ar_object.model_name.singular}_path", @ar_object), class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}", target: '_blank'
|
9
9
|
- else
|
10
|
-
= link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("#{@ar_object.model_name.singular}
|
10
|
+
= link_to tab_display_name(nav_item.nav_item_name), cm_admin.send("cm_#{nav_item_action_name}_#{@ar_object.model_name.singular}_path", @ar_object), class: "nav-link #{ nav_item_action_name == action_name ? 'active' : ''}"
|
11
11
|
// current_action_name is defined when action trail is added to that model
|
12
|
-
- if policy([:cm_admin, @model.name.classify.constantize]).send(:history?) && cm_admin.respond_to?("#{@ar_object.model_name.singular}
|
12
|
+
- if policy([:cm_admin, @model.name.classify.constantize]).send(:history?) && cm_admin.respond_to?("cm_history_#{@ar_object.model_name.singular}_path".to_sym)
|
13
13
|
li.nav-item
|
14
|
-
= link_to 'History', cm_admin.send("#{@ar_object.model_name.singular}
|
14
|
+
= link_to 'History', cm_admin.send("cm_history_#{@ar_object.model_name.singular}_path", @ar_object), class: "nav-link #{ action_name == 'history' ? 'active' : ''}"
|
@@ -1,8 +1,8 @@
|
|
1
1
|
.entity-header
|
2
2
|
.entity-header__info
|
3
|
-
- if cm_admin.method_defined?(:"#{@model.name.underscore}
|
3
|
+
- if cm_admin.method_defined?(:"cm_index_#{@model.name.underscore}_path") && (@model.current_action.name == 'show'|| @model.current_action.name == 'history' || @model.current_action.layout_type.present?)
|
4
4
|
.breadcrumb
|
5
|
-
= link_to "#{@model.model_name.titleize.pluralize} /", cm_admin.send(:"#{@model.name.underscore}
|
5
|
+
= link_to "#{@model.model_name.titleize.pluralize} /", cm_admin.send(:"cm_index_#{@model.name.underscore}_path"), class: 'text-reset'
|
6
6
|
h4 = action_title
|
7
7
|
/ - if @model.current_action.page_description
|
8
8
|
/ p.mb-0.text-body-secondary = @model.current_action.page_description
|
@@ -19,10 +19,10 @@
|
|
19
19
|
.popup-option.pointer data-bs-toggle='modal' data-bs-target='#exportmodal'
|
20
20
|
span Export
|
21
21
|
- if @model.importer && has_valid_policy(@ar_object, :importable)
|
22
|
-
= link_to 'Import', cm_admin.send(:"#{@model.name.underscore}
|
22
|
+
= link_to 'Import', cm_admin.send(:"cm_import_#{@model.name.underscore}_path"), class: 'btn-primary ms-2'
|
23
23
|
- new_action = @model.available_actions.select{|act| act if act.action_type.eql?(:default) && act.name.eql?('new')}
|
24
24
|
- if new_action.any? && has_valid_policy(@ar_object, 'new')
|
25
|
-
= link_to 'Add', cm_admin.send(:"#{@model.name.underscore}
|
25
|
+
= link_to 'Add', cm_admin.send(:"cm_new_#{@model.name.underscore}_path"), class: 'btn-primary ms-2'
|
26
26
|
- @model.available_actions.select{|act| act if act.route_type == 'collection'}.each do |custom_action|
|
27
27
|
= custom_action_items(custom_action, 'index')
|
28
28
|
- elsif @model.current_action.name == 'show'
|
@@ -32,7 +32,7 @@
|
|
32
32
|
- edit_action = @model.available_actions.select{|act| act if act.action_type.eql?(:default) && act.name.eql?('edit')}
|
33
33
|
- destroy_action = available_actions(@model, @ar_object, 'destroy')
|
34
34
|
- if edit_action.any? && has_valid_policy(@ar_object, 'edit')
|
35
|
-
= link_to cm_admin.send(:"#{@model.name.underscore}
|
35
|
+
= link_to cm_admin.send(:"cm_edit_#{@model.name.underscore}_path", @ar_object), class: 'btn-primary ms-2' do
|
36
36
|
span
|
37
37
|
i.fa.fa-edit
|
38
38
|
| Edit
|
@@ -12,10 +12,10 @@
|
|
12
12
|
p.success-msg Your file has been uploaded and it will be processed soon.
|
13
13
|
/ p.success-msg-info An email will be sent once the process is completed. If there are any problems with the import, we'll let you know through an email.
|
14
14
|
.actions-wrapper
|
15
|
-
a.btn-secondary href="#{cm_admin.send(:"#{@model.name.underscore}
|
15
|
+
a.btn-secondary href="#{cm_admin.send(:"cm_import_#{@model.name.underscore}_path")}" Import new data
|
16
16
|
/ button.cta-btn.ms-2 Back to Page_Name
|
17
17
|
- else
|
18
|
-
= simple_form_for(FileImport.new, url: "#{cm_admin.send(:"#{@model.name.underscore}
|
18
|
+
= simple_form_for(FileImport.new, url: "#{cm_admin.send(:"cm_import_#{@model.name.underscore}_path")}", method: :post, html: { class: "csv-import-form" }) do |f|
|
19
19
|
.form-card
|
20
20
|
= f.input :associated_model_name, as: :hidden, placeholder: 'Enter product title', label: false, input_html: { value: @model.name }
|
21
21
|
= f.input :import_file, as: :file, placeholder: 'Enter product title', label: false
|
@@ -1,7 +1,7 @@
|
|
1
1
|
.form-page.permission-form
|
2
2
|
.form-page__body
|
3
3
|
.form-container
|
4
|
-
= form_for CmPermission.new, url: cm_admin.send('
|
4
|
+
= form_for CmPermission.new, url: cm_admin.send('cm_create_role_permission_cm_role_path', @ar_object), method: :post do |f|
|
5
5
|
- cm_models = CmAdmin.config.cm_admin_models.sort_by{|k, v| k.display_name}
|
6
6
|
- cm_models.each do |model|
|
7
7
|
- next if model.override_policy == true
|
@@ -35,4 +35,4 @@
|
|
35
35
|
= select_tag(:policy_scope_name, options_for_select(model.policy_scopes.map{|policy_hash| [policy_hash[:display_name], policy_hash[:scope_name]]}, permission&.scope_name), {name: "role_permission[#{model.name}][#{action.name}][scope_name]", class: 'select-2', id: "policy-scope-#{model.name}-#{action.name}"})
|
36
36
|
div
|
37
37
|
= f.submit 'Save Changes', class: "btn-cta"
|
38
|
-
= link_to 'Discard', cm_admin.send('
|
38
|
+
= link_to 'Discard', cm_admin.send('cm_index_cm_role_path'), class: "btn-secondary ml-10"
|
@@ -15,11 +15,11 @@ div[data-behaviour="custom-action-modal-container"]
|
|
15
15
|
- custom_action_with_modals.each do |custom_action|
|
16
16
|
= render partial: '/layouts/custom_action_modal', locals: { custom_action: custom_action, ar_object: @ar_object }
|
17
17
|
- if destroy_action
|
18
|
-
= render partial: '/layouts/destroy_action_modal', locals: { ar_object: @ar_object }
|
18
|
+
= render partial: '/layouts/destroy_action_modal', locals: { ar_object: @ar_object, from_action: @current_action&.name }
|
19
19
|
|
20
20
|
- elsif @current_action&.action_type == :custom && @associated_ar_object&.data.present?
|
21
21
|
- @associated_ar_object.data.each do |ar_object|
|
22
22
|
- custom_action_with_modals.select{|custom_action| custom_action.model_name == @current_action.child_records.to_s.classify}.each do |custom_action|
|
23
23
|
= render partial: '/layouts/custom_action_modal', locals: { custom_action: custom_action, ar_object: ar_object }
|
24
24
|
- if destroy_action
|
25
|
-
= render partial: '/layouts/destroy_action_modal', locals: { ar_object: ar_object }
|
25
|
+
= render partial: '/layouts/destroy_action_modal', locals: { ar_object: ar_object, from_action: @current_action&.name }
|
@@ -9,7 +9,7 @@
|
|
9
9
|
.modal-info data-section="bulk-action"
|
10
10
|
| Are you sure you want to delete this #{@model.name.classify}?
|
11
11
|
.modal-footer
|
12
|
-
= button_to cm_admin.send("#{@model.name.underscore}
|
12
|
+
= button_to cm_admin.send("cm_destroy_#{@model.name.underscore}_path", ar_object, from_action:), method: :delete, class: "btn btn-primary" do
|
13
13
|
span
|
14
14
|
i.fa.fa-trash
|
15
15
|
| Destroy
|
data/config/routes.rb
CHANGED
@@ -12,14 +12,14 @@ CmAdmin::Engine.routes.draw do
|
|
12
12
|
CmAdmin.config.cm_admin_models.each do |model|
|
13
13
|
if model.importer
|
14
14
|
scope model.name.tableize do
|
15
|
-
send(:get, 'import', to: "#{model.name.underscore}#import_form", as: "#{model.name.underscore}
|
16
|
-
send(:post, 'import', to: "#{model.name.underscore}#import", as: "#{model.name.underscore}
|
15
|
+
send(:get, 'import', to: "#{model.name.underscore}#import_form", as: "cm_import_form_#{model.name.underscore}")
|
16
|
+
send(:post, 'import', to: "#{model.name.underscore}#import", as: "cm_import_#{model.name.underscore}")
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
if model.sort_columns.present?
|
21
21
|
scope model.name.tableize do
|
22
|
-
send(:post, 'reset_sort_columns', to: "#{model.name.underscore}#reset_sort_columns", as: "#{model.name.underscore}
|
22
|
+
send(:post, 'reset_sort_columns', to: "#{model.name.underscore}#reset_sort_columns", as: "cm_reset_sort_columns_#{model.name.underscore}")
|
23
23
|
end
|
24
24
|
end
|
25
25
|
|
@@ -31,9 +31,9 @@ CmAdmin::Engine.routes.draw do
|
|
31
31
|
scope model.name.tableize do
|
32
32
|
# Define route only when action trail related field is present
|
33
33
|
if act.name == 'history'
|
34
|
-
send(:get, ':id/history', to: "#{model.name.underscore}#history", as: "#{model.name.underscore}
|
34
|
+
send(:get, ':id/history', to: "#{model.name.underscore}#history", as: "cm_history_#{model.name.underscore}")
|
35
35
|
else
|
36
|
-
send(act.verb, act.path.present? ? act.path : act.name, to: "#{model.name.underscore}##{act.name}", as: "#{
|
36
|
+
send(act.verb, act.path.present? ? act.path : act.name, to: "#{model.name.underscore}##{act.name}", as: "cm_#{act.name}_#{model.name.underscore}")
|
37
37
|
end
|
38
38
|
end
|
39
39
|
end
|
data/lib/cm_admin/version.rb
CHANGED
@@ -140,10 +140,10 @@ module CmAdmin
|
|
140
140
|
if field.association_type.to_s == 'polymorphic'
|
141
141
|
association_name = ar_object.send(field.association_name).class.to_s.underscore
|
142
142
|
field_name = find_field_name(field, association_name)
|
143
|
-
link_to ar_object.send(field.association_name).send(field_name), cm_admin.send("#{association_name}
|
143
|
+
link_to ar_object.send(field.association_name).send(field_name), cm_admin.send("cm_show_#{association_name}_path", ar_object.send(field.association_name))
|
144
144
|
elsif ['belongs_to', 'has_one'].include? field.association_type.to_s
|
145
145
|
if ar_object.send(field.association_name)
|
146
|
-
link_to ar_object.send(field.association_name).send(field.field_name), cm_admin.send("#{field.association_name}
|
146
|
+
link_to ar_object.send(field.association_name).send(field.field_name), cm_admin.send("cm_show_#{field.association_name}_path", ar_object.send(field.association_name))
|
147
147
|
end
|
148
148
|
end
|
149
149
|
end
|
@@ -92,7 +92,7 @@ module CmAdmin
|
|
92
92
|
field_name: cm_field.field_name,
|
93
93
|
field_type: 'linked-field',
|
94
94
|
target_action: target_action&.name,
|
95
|
-
target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}
|
95
|
+
target_url: target_action&.name ? cm_admin.send("cm_#{target_action&.name}_#{@model.name.underscore}_path") : '',
|
96
96
|
ajax_url:
|
97
97
|
}
|
98
98
|
}, cm_field.html_attrs
|
@@ -111,7 +111,7 @@ module CmAdmin
|
|
111
111
|
field_name: cm_field.field_name,
|
112
112
|
field_type: 'linked-field',
|
113
113
|
target_action: target_action&.name,
|
114
|
-
target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}
|
114
|
+
target_url: target_action&.name ? cm_admin.send("cm_#{target_action&.name}_#{@model.name.underscore}_path") : ''
|
115
115
|
}
|
116
116
|
}, cm_field.html_attrs
|
117
117
|
)
|
@@ -254,7 +254,7 @@ module CmAdmin
|
|
254
254
|
data: {
|
255
255
|
field_name: cm_field.field_name,
|
256
256
|
target_action: target_action&.name,
|
257
|
-
target_url: target_action&.name ? cm_admin.send("#{@model.name.underscore}
|
257
|
+
target_url: target_action&.name ? cm_admin.send("cm_#{target_action&.name}_#{@model.name.underscore}_path") : ''
|
258
258
|
}
|
259
259
|
}, cm_field.html_attrs
|
260
260
|
)
|
@@ -56,13 +56,13 @@ module CmAdmin
|
|
56
56
|
when :modal
|
57
57
|
custom_modal_button(custom_action)
|
58
58
|
when :page
|
59
|
-
path = cm_admin.send("#{
|
59
|
+
path = cm_admin.send("cm_#{custom_action.name}_#{@model.name.underscore}_path", @ar_object.id, custom_action.url_params)
|
60
60
|
link_to custom_action_title(custom_action), path, class: 'btn-secondary ms-2', method: custom_action.verb
|
61
61
|
end
|
62
62
|
end
|
63
63
|
|
64
64
|
def custom_action_icon(custom_action, current_action_name)
|
65
|
-
button_to cm_admin.send("#{
|
65
|
+
button_to cm_admin.send("cm_#{custom_action.name}_#{@model.name.underscore}_path"), method: :post, params: {selected_ids: ''} do
|
66
66
|
content_tag(:span) do
|
67
67
|
content_tag(:i, '', class: custom_action.icon_name)
|
68
68
|
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:
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael
|
@@ -14,7 +14,7 @@ authors:
|
|
14
14
|
autorequire:
|
15
15
|
bindir: exe
|
16
16
|
cert_chain: []
|
17
|
-
date: 2024-10-
|
17
|
+
date: 2024-10-22 00:00:00.000000000 Z
|
18
18
|
dependencies:
|
19
19
|
- !ruby/object:Gem::Dependency
|
20
20
|
name: caxlsx_rails
|